在活动启动按钮的最后一个项目点击

问题描述:

后,我创建具有buttonlistview的应用程序。我的问题是在此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; 
    } 


} 
+0

您需要存储所有点击项目的位置,并检查每次用户单击listView中的项目时是否单击了所有需要的位置。如果所有被点击 - 启用按钮/ –

一个简单的方法可以添加位置的列表。

您可以创建intArrayList。每当用户点击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必须更换名称和实现方法,但是这将工作

+0

thanx这是伟大的,但我不明白在哪里使用此片段。 m初学者在Android –

+0

@anuragshrivastava我建议你检查一些教程在Android中,我总是建议“thenewboston”在YT因为它真的很满。顺便说一句,你必须把它添加到列表中。onItemClick方法,我将它添加到我的答案中 –

+1

好的,谢谢先生。 –

例如,如果你在你的列表视图中显示的电影列表,然后

第1步:创建类Movie保持2个字段命名string movieNameboolean flag

步骤2:为所有电影对象设置初始值flag值为false并添加到数组列表中。现在使用此列表在列表视图中显示影片名称。

第3步:添加的onclick侦听器列表视图。

第4步:点击你的listview中的每个项目onclick方法将被调用position作为参数之一。使用此参数将对应的flag设置为true。在该行重复movielist并检查列表中的所有电影对象是否具有标记值为true。在这种情况下启用button