我有自定义布局的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");
}
}
});
提前致谢。
答案 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();
...
}
。