我在我的应用程序中有一个列表视图。每行都有一个按钮。我隐藏了n
行的按钮。但滚动列表后按钮可见性会发生变化。我该如何阻止这种变化?
我已经在Listview的复选框中看到了一个问题。但我不知道如何为按钮实现它。所以请指导我!
ADAPTER
setVisibility
答案 0 :(得分:0)
像这样更新您的代码
if (class_list.get(arg0).get("TOTAL_SUBMISSION").equals("0")) {
Log.e("TITLE", class_list.get(arg0).get("TOTAL_SUBMISSION"));
holder.viewasgn.setVisibility(View.INVISIBLE);
holder.viewasgn.setText("");
}
else{
Log.e("TITLE", class_list.get(arg0).get("TOTAL_SUBMISSION"));
holder.viewasgn.setVisibility(View.VISIBLE);
holder.viewasgn.setText("VIEW");
}
答案 1 :(得分:0)
通过在Button的属性中添加setVisibility(View.INVISIBLE)
,可以在您的assignment_adapter_layout.xml中添加{@ 1}} @Solhail建议或默认隐藏这些按钮,并且不要更改当前适配器代码中的内容。
答案 2 :(得分:0)
在您的情况下,当listView滚动时,将重新创建视图。 为防止这种情况,您不应使用ViewHolder。
你需要像这样的用户适配器: (只有你没有很多元素)
public class SampleAdapter extends BaseAdapter {
private ArrayList<String> arrayList;
private Activity activity;
public SampleAdapter(ArrayList<String> arrayList, Activity activity) {
this.arrayList = arrayList;
this.activity = activity;
}
@Override
public int getCount() {
return arrayList.size();
}
@Override
public Object getItem(int position) {
return arrayList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = activity.getLayoutInflater();
View view = layoutInflater.inflate(R.layout.sample_element, parent, false);
TextView textViewTitle = (TextView) view.findViewById(R.id.text_view_title);
textViewTitle.setText(arrayList.get(position));
return view;
} }