2012-07-24 29 views
1

我試圖在Android中爲我的ListView設置一個OnItemClickListener,但我無法讓它工作。在Android上爲ListView設置onItemClick偵聽器

這是我到目前爲止有:

public class MenuFragment extends SherlockFragment 
{ 
    ArrayList<Item> items = new ArrayList<Item>(); 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) 
    { 

    ListView list = (ListView)view.findViewById(R.id.list_mainmenu); 

    // some code here where i add items to an ArrayList... 

    // Then i add the ArrayList to an EntryAdapter 
    EntryAdapter adapter = new EntryAdapter(this.getActivity().getBaseContext(), items); 

    list.setAdapter(adapter); 
    list.setClickable(true); 

    list.setOnItemClickListener(AdapterView.OnItemClickListener()) { 
     // ... 
    } 
} 

但是,這使我對OnItemClickListener()的錯誤:

的方法OnItemClickListener()是未定義的類型適配器視圖。

所以我的問題是,我怎麼能在我的ListView上設置OnItemClickListener

回答

10

檢查這個代碼

listView.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view,int position, long id) { 
      // When clicked, show a toast with the TextView text 
      Toast.makeText(getApplicationContext(), 
      ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); 
     } 
    }); 
0

應該實施customAdapter具有對您的ListView更多的控制權,Here是訪問這個你應該能夠做到需要什麼之後的鏈接。或者你可以有這個代碼來快速做你所需要的。

listView.setOnItemClickListener(new OnItemClickListener() { 
@Override 
public void onItemClick(AdapterView<?> arg0, View view, int arg2,long itemID) { 


} 
}); 
1

試試這個

list.setOnItemClickListener(new AdapterView.OnItemClickListener()) { 
    // ... 
} 
2

確保您已導入正確的包:

import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
0

試試這個:

list.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
     // ... 
    } 
}); 
0

試試這個

listView.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 

     } 
    });