我正在创建一个应用程序,它有一个 button
和一个 listview
。我的问题是在单击此 listview
中的所有项目后启用此 button
。否则,按钮
将被禁用。
如何检查所有项目是否已被点击?
这是我的适配器请看一下
public class InstallAdapter extends BaseAdapter {
private Activity activity;
private LayoutInflater inflater;
public List<InstallModel> galleryItems;
ProgressDialog dia;
public InstallAdapter(Activity activity,
ArrayList<InstallModel> galleryItems) {
this.activity = activity;
this.galleryItems = galleryItems;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
Log.e("getCount :", galleryItems.size() + "");
return galleryItems.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
Log.e("getItem :", galleryItems.get(position) + "");
return galleryItems.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
Log.e("getItemId :", position + "");
return galleryItems.indexOf(getItem(position));
}
class ViewHolder {
Button Title;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final ViewHolder holder;
holder = new ViewHolder();
if (inflater == null)
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.custom_list_result, null);
Log.e("AgetView", galleryItems.size() + "");
holder.Title = (Button) convertView.findViewById(R.id.buttonInstall1);
Log.e("gallery postion", galleryItems.get(position) + "");
holder.Title.setText(galleryItems.get(position).getHeading());
holder.Title.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String url = galleryItems.get(position).getApp_url();
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
activity.startActivity(i);
}
});
/*if (position == getCount() - 1) {
btGoCongrts.setEnabled(false);
} else {
btGoCongrts.setEnabled(true);
}*/
return convertView;
}
}
最佳答案
一种简单的方法是添加职位列表。
您可以创建 int
的 ArrayList
。每次用户点击一个item
,你就把这个item放在位置
,然后检查ArrayList
是否包含这个index
.
如果它不包含它,则将此 int
添加到 ArrayList
。
在此之后,您检查此 ArrayList
中的项目数,如果它等于列表中的项目总数,则您完成了。
小代码:
将其添加到列表中。 setOnItemClickListener
ArrayList<int> myIndexes = new ArrayList<>()
//add onitemclick method with this body
if(!myIndexes.contains(position)){
myIndexes.add(position);
}
if(myIndexes.length == myList.length){
//enable button
}
显然,您必须替换名称并实现方法,但这会起作用
关于android - 单击最后一个项目后在 Activity 中启用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40488462/