为列表视图设置长按监听器

马塔拉塔

我有以下代码:

public class MainActivity extends ListActivity { 
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}   
protected void onListItemClick(ListView l, View v, final int position, long id) {
    super.onListItemClick(l, v, position, id);
}}

我需要将其更改为onListItemLongClick(),但如何?可能吗?

丹尼尔·纽金特

您的问题与这一问题非常相似,但看起来并非完全相同。

您已经注意到,ListActivity类没有专门针对这种情况的方法重写。

为了将此功能添加为方法覆盖,您的类应实现该AdapterView.OnItemLongClickListener接口,然后可以添加onItemLongClick()方法覆盖,该方法覆盖的作用与onListItemClick()您已有方法覆盖的作用相同,但会响应长按。

只要确保您遵循此答案中的说明,您必须android:longClickable="true"在布局xml中使用,或调用listview.setLongClickable(true);

例:

public class MainActivity extends ListActivity implements AdapterView.OnItemLongClickListener {

    ListView listview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView listview = (ListView) findViewById(R.id.list);

        listview.setLongClickable(true);

    }

    @Override
    public boolean onItemLongClick(AdapterView<?> l, View v,
                                   final int position, long id) {

        Toast.makeText(this, "long clicked pos: " + position, Toast.LENGTH_LONG).show();

        return true;
    }

    protected void onListItemClick(ListView l, View v, final int position, long id) {
        super.onListItemClick(l, v, position, id);

        Toast.makeText(this, "short clicked pos: " + position, Toast.LENGTH_LONG).show();  

    }

 //....................

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章