在活动启动按钮的最后一个项目点击
后,我创建具有button
和listview
的应用程序。我的问题是在此listview
中的所有项目已被点击后启用此button
。 Elseway 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
时,您将此项目设为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
}
Obiouvsly必须更换名称和实现方法,但是这将工作
thanx这是伟大的,但我不明白在哪里使用此片段。 m初学者在Android –
@anuragshrivastava我建议你检查一些教程在Android中,我总是建议“thenewboston”在YT因为它真的很满。顺便说一句,你必须把它添加到列表中。onItemClick方法,我将它添加到我的答案中 –
好的,谢谢先生。 –
例如,如果你在你的列表视图中显示的电影列表,然后
第1步:创建类Movie
保持2个字段命名string movieName
和boolean flag
步骤2:为所有电影对象设置初始值flag
值为false
并添加到数组列表中。现在使用此列表在列表视图中显示影片名称。
第3步:添加的onclick侦听器列表视图。
第4步:点击你的listview中的每个项目onclick方法将被调用position
作为参数之一。使用此参数将对应的flag
设置为true
。在该行重复movielist
并检查列表中的所有电影对象是否具有标记值为true。在这种情况下启用button
。
您需要存储所有点击项目的位置,并检查每次用户单击listView中的项目时是否单击了所有需要的位置。如果所有被点击 - 启用按钮/ –