繁体   English   中英

ListView的OnItemClick不起作用

ListView's OnItemClick does not work

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我做了一个列表视图。 使用教程链接效果很好。 但是问题是当我尝试在其活动类中添加onitemclick侦听器时,click动作不起作用。我只想显示一个吐司消息,在这里它是onItemClickListener的代码

listViewCity.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> a, View v, int position, long id) { 

                    String item = ((TextView)v).getText().toString();

                    Toast.makeText(getApplicationContext(), item, Toast.LENGTH_LONG).show();

            }  
        });

为什么它不起作用,任何人都可以告诉我???

4 个回复

如果您遇到异常或强制关闭,则应该提到它。

首先,您的OnItemClickListener是错误的,因为传递给OnClickListener的View不是TextView,因此您不能仅将其强制转换为TextView。

您可以使用以下方法修复它:

listViewCity.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
        String item = ((TextView)v.findViewById(R.id.cityName)).getText().toString();
            Toast.makeText(getApplicationContext(), item, Toast.LENGTH_LONG).show();

    }  
});

试试我刚刚做的事,它应该可以工作。 如果它不起作用,则可能需要从xml文件中删除行android:autoLink="web"


属性android:autoLink="web"使视图的TextView可点击。 正如我在评论中提到的那样,如果您的任何子视图都是可单击的,则您的OnItemClickListener将不会接收事件,因为它将由子级使用。

用这个

由于您使用的是customadapter,因此必须在customadapter类中执行此操作,以处理列表视图的onclicks ...

convertView.setClickable(true);
    convertView.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View paramView)
                    {
                      //if you want you can use the "position" value to get the desired row items.
                    }
                    });

尝试这个...

listViewCity.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
                     String item = listViewCity.getItemAtPosition(position).toString();

                    Toast.makeText(getApplicationContext(), item, Toast.LENGTH_LONG).show();

            }  
        });

我遇到了同样的问题,并通过将需要单击的每个视图设置为可单击,然后添加了侦听器来解决了该问题。 我将以下方法放入自定义适配器中(在getView方法中)。 像这样:

public void setViewsClickable(int position) {
        myView.button.setClickable(true);
        myView.radioButton.setClickable(true);
        myView.button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // what this button should do
            }
        });

        myView.radioButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // what clicking this radio button should do
            }
        });

    }
1 LISTVIEW-onItemClick不起作用

我是进入Android的第一步。我已经阅读了一些已回答的问题,并且使用了很多技巧,但是找不到解决问题的方法。 在Categories.java活动中,我有一个从数据库开始构建的listview。 列表视图正确显示,然后我想从OnItemClick开始另一个活动,但是我意识到我什至无法显示 ...

3 ListView中的onItemClick方法不起作用

我试图在同一活动上实现两个导航抽屉,我正在按照这篇文章在同一Activity上执行两个导航抽屉 ,但是当我尝试在ListView中捕获onItemClick时,什么也没有发生。 在此先感谢您的帮助。 下面是我的代码。 MainActivity.java activity_m ...

4 onItemClick()不起作用

我正在迈出第一步,如果这是一个愚蠢的问题,对不起。 我已经按照本教程实现了一个包含ListView的DialogFragment 。 这是ColorDialogFragment.java : 这是dialog_fragment.xml : 问题是,当我单击列表项时,不会调 ...

6 listview的onitemclick()在导航抽屉中不起作用

我正在构建一个导航抽屉,在其中单击一个项目然后在音乐播放器中打开一个新活动。 问题是创建了列表视图,并且项目也被列出。 但是在itemclick上没有任何反应。 下面是我的代码: 我正在将它用于音乐播放器。 因此,我需要从导航抽屉中打开其他活动以获得均衡器和其他效果。 在此先感 ...

10 当存在onItemLongClick时(在ListView中),onItemClick不起作用

我有一个ListView ,我想根据用户单击还是长按来触发不同的操作。 不幸的是,在为长按添加了侦听器之后,将永远不会调用短的侦听器。 如果我短按一下,什么也不会发生。 如果ai长按,则调用相应的方法。 我有Android 4.2.2。 我该如何解决该问题,即使快捷键起作用? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM