2016-08-05 32 views
0

我有我的列表適配器中的項目按鈕。當我點擊按鈕時會出現問題。該操作在正確的項目上執行,但它禁用了錯誤的按鈕。 我的代碼:ListAdapter上的按鈕

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     LayoutInflater inflater = 
       (LayoutInflater)context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
     View view = inflater.inflate(R.layout.item_friend, parent, false); 

     user = userList.get(position); 


     ImageView imageView = (ImageView)view.findViewById(R.id.user_image); 

Picasso.with(JSONUserAdapter.this.getContext()).load("https://s3.amazonaws.com/profiles-pictures/"+ user.getPath()).into(imageView); 


     sendRequest = (ImageButton)view.findViewById(R.id.sendRequest); 


     sendRequest.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       sendFriendRequest(); 
       disabledAdd(); 

      } 
     }); 

     return view; 
    } 
+0

用戶=用戶列表。得到(位置);進行這個可變的本地決賽。 –

回答

0

不要試圖抓住點擊事件的ListView行內的按鈕。 ListView的每行已經可以點擊。設置onItemClickListenerListView

listview.setOnItemClickListener(new OnItemClickListener(){ 
    @Override 
    public void onItemClick(AdapterView<?> adapter, View v, int position, long l) { 
      //DO SOMETHING HERE 
      //Use "position" to get the index of item clicked 
    } 
}); 
+0

除非您想單擊​​列表項目上的單獨功能。 – nukeforum

0

,我可以看到,我們所定義的「用戶」對象作爲globel變量,它將存儲的最後志願服務崗位項數據。

所以當你點擊任何按鈕時,最後的項目數據將被反映出來。

{UserType}Object user = userList.get(position); 
0

您可以在View

使用設置標籤這樣的:

sendRequest.setTag(user); 

而且當用戶點擊項目讓我們從標籤中獲取數據這樣

sendRequest.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // Here you have user that was clicked. 
       User user = v.getTag(); 
       sendFriendRequest(); 
       disabledAdd(); 

      } 
});