如何更改自定义列表视图项布局

时间:2015-06-26 06:48:27

标签: android android-listview

我有自定义布局的listview,每个布局都有一个TextView,一个Seekbar和一个Button。我想要做的就是当我单击“编辑”按钮时,自定义布局中的所有按钮都变为可见。单击编辑按钮后我使用notifyDataSetChanged,没有任何更改。

这里是我的代码片段。

在CustomAdapter中我定义了一个方法,boolean flag和getView方法;

public class NavigationDrawerListViewAdapter extends BaseAdapter {
  boolean editmode = false;

  @Override
 public View getView(final int position, View convertView, final ViewGroup parent) {
    final ViewHolder holder;
    if (convertView == null) {
    holder.mButton=(Button)convertView.findViewById(R.id.button2);
    holder.mButton.setVisibility( (editmode ? View.VISIBLE : View.INVISIBLE ) );
  }
}


}



public void setEditMode(boolean value){
            editmode = value;
            this.notifyDataSetChanged();

}

我的ListViewActivity类;

editLayers = (Button) rootview.findViewById(R.id.editLayersButton);
editLayers.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (editLayers.getText().equals("Düzenle")) {
                    myAdapter.setEditMode(true);
                    editLayers.setText("Tamam");


                } else {
                    myAdapter.setEditMode(false);
                    editLayers.setText("Düzenle");



                }


            }


        });

提前致谢。

enter image description here

2 个答案:

答案 0 :(得分:1)

更改此

if (convertView == null) {
    holder.mButton=(Button)convertView.findViewById(R.id.button2);
convertView.setTag(holder);
  }else{
holder = (ViewHolder) convertView.getTag();
}

然后写。将以下代码移到if.. else...

之外
 holder.mButton.setVisibility( (editmode ? View.VISIBLE : View.INVISIBLE ) );

答案 1 :(得分:1)

./node_modules/react-native/packager/packager.sh --reset-cache 中存在错误,需要为对象getView()创建实例。

建议代码:

holder

注意@Override public View getView(final int position, View convertView, final ViewGroup parent) { final ViewHolder holder; if (convertView == null) { holder = new ViewHolder(); ... }