2
getSherlockActivity().findViewById(android.R.id.list);
new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView <? > arg0, View arg1, int position,
        long id) {
        // TODO Auto-generated method stub
        Toast.makeText(getSherlockActivity(), 
             "You selected :", Toast.LENGTH_SHORT).show();
    }
};

我正在尝试向我的活动添加一个事件侦听器,但根本没有显示 toast 消息。我从onCreateView方法中调用这段代码

4

5 回答 5

4

看起来您实际上并没有在列表中设置点击侦听器,您只是在创建它,甚至没有保留对它的引用。

试试这样:

ListView lv = (ListView)(getSherlockActivity().findViewById(android.R.id.list));
lv.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView <? > arg0, View arg1, int position,
        long id) {
        // TODO Auto-generated method stub
        Toast.makeText(getSherlockActivity(), 
             "You selected :", Toast.LENGTH_SHORT).show();
    }
});
于 2013-04-08T13:36:35.903 回答
2
getSherlockActivity().findViewById(android.R.id.list).setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView <? > arg0, View arg1, int position,
    long id) {
    // TODO Auto-generated method stub
    Toast.makeText(getSherlockActivity(), 
         "You selected :", Toast.LENGTH_SHORT).show();
}});

已编辑

((ListView)getSherlockActivity()).findViewById(android.R.id.list).setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView <? > arg0, View arg1, int position,
    long id) {
    // TODO Auto-generated method stub
    Toast.makeText(getSherlockActivity(), 
         "You selected :", Toast.LENGTH_SHORT).show();
}});

在 onCreate() 中添加这一行。

于 2013-04-08T13:36:46.953 回答
1

我没有看到你添加任何东西。你所做findViewById()的一切都是没有目的的(因为你没有使用返回值。而且你只是OnItemClickListener无缘无故地创建了新的,因为你也没有使用它。不,将两行代码放在一起不会自动生成以任何方式互动...

正确的做法是:

ListView v = (ListView)getSherlockActivity().findViewById(android.R.id.list);
v.setOnItemClickListener( new OnItemClickListener() {
  ...
  ...
于 2013-04-08T13:36:10.727 回答
1

只加

ListView lv = (ListView)getSherlockActivity().findViewById(android.R.id.list);
lv.setOnItemClickListener(this);

 @Override
    public void onItemClick(AdapterView <? > arg0, View arg1, int position,
        long id) {

}

和活动应该实施OnItemClickListener

或者

ListView lv = (ListView)getSherlockActivity().findViewById(android.R.id.list);
lv.setOnItemClickListener( new OnItemClickListener() {
 @Override
    public void onItemClick(AdapterView <? > arg0, View arg1, int position,
        long id) {

}
于 2013-04-08T13:40:06.483 回答
1

几周前,我发现了同样的情况。我没有使用 Sherlock,但是设置下一行可能会有所帮助。

listView.setItemsCanFocus(false);

还要确保将 clickable false 设置为行项目中的任何 Button。

于 2013-04-08T13:43:09.517 回答