我如何听点击一个ListView事件?

这是我现在有

ListView list = (ListView)findViewById(R.id.ListView01);  
...  
list.setAdapter(adapter);  

当我执行以下操作

list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {  
   public void onItemSelected(AdapterView parentView, View childView, 
                                                         int position, long id) 
   {  
       setDetail(position);  
   }

   public void onNothingSelected(AdapterView parentView) {  

   }  
});  

这似乎并没有做任何点击。点击 而所有这些代码住扩展活动类中。

有帮助吗?

解决方案

在您的列表视图中,使用setOnItemClickListener

其他提示

假设的ListView目的是LV,执行以下操作 -

lv.setClickable(true);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

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

    Object o = lv.getItemAtPosition(position);
    /* write you handling code like...
    String st = "sdcard/";
    File f = new File(st+o.toString());
    // do whatever u want to do with 'f' File object
    */  
  }
});

您需要设置充气视图“可点击”和“能听单击事件”在您的适配器类getView()方法。

convertView = mInflater.inflate(R.layout.list_item_text, null);
convertView.setClickable(true);
convertView.setOnClickListener(myClickListener);

和声明点击监听在ListActivity如下,

public OnClickListener myClickListener = new OnClickListener() {
public void onClick(View v) {
                 //code to be written to handle the click event
    }
};

此只保存当你被延伸BaseAdapter定制适配器实现。

请参考ANDROID_SDK /样品/ ApiDemos / SRC / COM /示例/机器人的/ apis /视图/ List14.java更多细节

在我前面的两个答案是正确的 - 你可以使用OnItemClickListener

这是很好的注意,OnItemClickListenerOnItemSelectedListener之间的区别,虽然听上去含蓄,其实显著,为项目选择和重点与您AdapterView的触摸模式有关。

默认情况下,在触摸模式中,不存在选择和聚焦。 你可以看看这里关于这个问题的进一步信息。

此解决方案是真正的简约,不会弄乱你的代码。

在您的 list_item.xml 指定属性的安卓(NOT ListView的!):的onClick 是这样的:

<RelativeLayout android:onClick="onClickDoSomething">

和然后在活动呼叫此方法:

public void onClickDoSomething(View view) {
   // the view is the line you have clicked on
}

您必须使用setOnItemClickListener有人说。结果 该代码应该是这样的:

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

首先,类必须实现点击listenener:

implements OnItemClickListener

然后设置一个监听到ListView

yourList.setOnItemclickListener(this);

最后,创建CLIC方法:

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Toast.makeText(MainActivity.this, "You Clicked at " +countries[+ position], Toast.LENGTH_SHORT).show();
}

你可以看看,下载代码这里

使用setOnItemClickListener()API在您的活动。以下是示例。

listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){

@Override
public void onItemClick(AdapterView<> parent, View view, int position, long id)
{
     // your code here.
}

});

在科特林,收听者添加到你的ListView那样简单的java

your_listview.setOnItemClickListener { parent, view, position, id ->   

    Toast.makeText(this, position, Toast.LENGTH_SHORT).show()

 }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top