Android listview多次单击项目 [英] Android listview clicking on item multiple times

查看:69
本文介绍了Android listview多次单击项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含多个项目的列表视图.单击一个项目时,将打开一个活动.但是,当我在该项目上快速单击几次时,与其关联的活动将被多次打开.如何只打开一次项目?

I have a listview with several items. When clicking on an item, an Activity is opened. However, when I click fast several times on the item, the activity, asociated with it, is opened several times. How to open the item only once?

我使用以下代码:

private OnItemClickListener newsfeedClickHandler = new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        MyObject newsfeed = adapter.getItem(position);
        onNewsfeedClick(newsfeed);
    }
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_newsfeed, container, false);
    ...
    listView = (ListView) view.findViewById(R.id.newsfeeds);
    listView.setOnItemClickListener(newsfeedClickHandler);
    listView.setAdapter(adapter);
    ...
    return view;
}
private void onNewsfeedClick(MyObject newsfeed) {
    Intent intent = createIntent(newsfeed);
    startActivity(intent);
}

推荐答案

阻止调用ListView项的正确方法是(显然)禁用OnItemClickListener:

The correct way to prevent calls to the ListView items would be to (obviously) disable the OnItemClickListener:

private void onNewsfeedClick(MyObject newsfeed) {
    listView.setOnItemClickListener(null);
    Intent intent = createIntent(newsfeed);
    startActivity(intent);
}

当此活动再次可见时,将监听器重新设置为onResume.

Re-set the listener at onResume, when this activity is visible again.

@Override
protected void onResume() {
    super.onResume();
    listView.setOnItemClickListener(newsfeedClickHandler);
}

这篇关于Android listview多次单击项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆