首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListView,不叫OnItemClick?

ListView,不叫OnItemClick?
EN

Stack Overflow用户
提问于 2014-03-25 16:01:13
回答 3查看 1K关注 0票数 1

我有一个控制FragmentActivityListFragment;这个ListFragment包含一个通用的ListViewAdapter,并从我创建的Singleton中画出一个ArrayList

在我的onCreateView方法的ListFragment中,我放置了以下代码:

代码语言:javascript
复制
public View onCreateView(LayoutInflater viewInflation, ViewGroup container,
        Bundle SavedInstantState) {
    cycleviewfragment = viewInflation.inflate(
            R.layout.cycleviewfragment_page, container, false);
    context = getActivity().getApplicationContext();
    Singleton mySingleton = Singleton.getInstance();
    basicList = (ListView) cycleviewfragment.findViewById(android.R.id.list);
    adapter = new ArrayAdapter<listControlObject>(getActivity()
            .getApplicationContext(), android.R.layout.simple_list_item_1,
            mySingleton.getA1());

    this.setListAdapter(adapter);

    addButton = (Button) cycleviewfragment.findViewById(R.id.addbutton);

    addButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent myIntent = new Intent(getActivity(),
                    listaddactivity.class);
            getActivity().startActivity(myIntent);
        }

    });

    basicList.setOnItemClickListener(new ListView.OnItemClickListener(){
                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) {
                    Log.d("basicListtester", "Testing onClickItem call");
                    Intent myIntent = new Intent(getActivity(),
                            listdetailactivity.class);
                    myIntent.putExtra("selectedObjectIndex",arg2);
                    getActivity().startActivity(myIntent);

                }

            });

    adapter.notifyDataSetChanged();
    return cycleviewfragment;
}

对于为什么当我将项目添加到我的列表中时,它们没有反应,OnItemClick也没有被调用,有什么想法吗?

谢谢你们。

更新

我试着用basicList.setAdapter(adapter);实现它,但它仍然不起作用。

还尝试让我的ListFragment实现OnItemClickListener并将该方法添加到类中;这也不起作用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-25 16:16:13

由于您使用ListFragment,所以不应该将onItemClickListener设置为您的列表。在ListFragment中已经有一个方法应该重写。

代码语言:javascript
复制
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

    //Do your thingy.
}
票数 2
EN

Stack Overflow用户

发布于 2014-03-25 16:03:23

使用

代码语言:javascript
复制
basicList.setListAdapter(adapter);

而不是

代码语言:javascript
复制
this.setListAdapter(adapter);

使用相同的ListView实例来设置AdaptersetOnItemClickListener

票数 1
EN

Stack Overflow用户

发布于 2014-03-25 16:04:12

您应该重写onListItemClick,因为您的类扩展了ListFragment。从医生那里:

当选择列表中的项时,将调用此方法。子类应该重写。

这里文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22639960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档