向listView添加事件侦听器

时间:2013-04-08 13:33:27

标签: android

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方法

调用这段代码

5 个答案:

答案 0 :(得分: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();
    }
});

答案 1 :(得分: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();
}});

<强> EDITED

((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()中添加此行。

答案 2 :(得分:1)

我没有看到你添加任何东西。你所做的只是findViewById()没有任何目的(因为你没有使用返回值。你也没有理由创建新的OnItemClickListener因为你没有使用它。而且,不,放两行代码彼此相邻不会以任何方式自动交互...

正确的方法是:

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

答案 3 :(得分: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) {

}

和Activity应该实现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) {

}

答案 4 :(得分:1)

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

listView.setItemsCanFocus(false);

另外,请确保将clickable false设置为行项目中的任何按钮。