我正在创建一个包含button
和listview
的应用。我的问题是在点击此button
中的所有项目后启用此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;
}
}
答案 0 :(得分:2)
一种简单的方法可能是添加一个职位列表。
您可以创建ArrayList
int
。每当用户点击item
时,您都会使用此项position
并检查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
}
显然你必须替换名称和实现方法,但这将起作用
答案 1 :(得分:0)
例如,如果您在列表视图中显示电影列表,则
第1步:创建一个类Movie
,其中包含名为string movieName
和boolean flag
第2步:为所有电影对象设置初始flag
值为false
并添加到arraylist中。现在使用此列表在列表视图中显示电影名称。
第3步:为listview添加onclick侦听器。
第4步:点击listview中的每个项目onclick方法将以position
作为参数之一进行调用。使用此参数将相应的flag
设置为true
。在此行之后迭代movielist
并检查列表中的所有电影对象是否具有标志值为true。在这种情况下,启用button
。