2016-11-08 142 views
0

後,我創建具有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中的項目時是否單擊了所有需要的位置。如果所有被點擊 - 啓用按鈕/ –

回答

1

一個簡單的方法可以添加位置的列表。

您可以創建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

好的,謝謝先生。 –

0

例如,如果你在你的列表視圖中顯示的電影列表,然後

第1步:創建類Movie保持2個字段命名string movieNameboolean flag

步驟2:爲所有電影對象設置初始值flag值爲false並添加到數組列表中。現在使用此列表在列表視圖中顯示影片名稱。

第3步:添加的onclick偵聽器列表視圖。

第4步:點擊你的listview中的每個項目onclick方法將被調用position作爲參數之一。使用此參數將對應的flag設置爲true。在該行重複movielist並檢查列表中的所有電影對象是否具有標記值爲true。在這種情況下啓用button

相關問題