【问题标题】:How get item ID from ListFragment in android?如何从 Android 中的 ListFragment 获取项目 ID?
【发布时间】:2023-03-09 01:40:01
【问题描述】:

Class 中,来自ListFragmentextend 我正在使用来自onListItemClickonListItemClick

public class Setting_Fragment extends ListFragment{
    @Override
    public void onListItemClick(ListView l, View v, final int position, long id) {
         if (position == 0) {
               ImageView image = (ImageView) v.findViewById(R.id.img_message);
               image.setOnClickListener(new OnClickListener() {

                 @Override
                 public void onClick(View v) {
                    Log.i("log", "here");
                 }
        });
        }
    }
}

我需要获取ImageView 并更改图像,但我不能。

我看不到Log.i("log", "here");

注意:我使用的是 appcompat_v7

【问题讨论】:

标签: android android-fragments android-listfragment


【解决方案1】:

您使用了错误的参数,这可能是您的问题。

Position 是显示的列表中的位置。 ListViews 仅显示填充屏幕所需的条目 - 屏幕上方和下方的条目在您滚动到它们并将它们移动到屏幕上之前不会呈现。 Position 与显示的内容有关。 id 与行的实际单个 id 相关,无论正在呈现哪些行。

编辑:

在表面上,你这样做的方式完全搞砸了。您仅在单击该行时设置 onClickListener ......这没有任何意义。这就是你要做的。

进入该行的 XML。在ImageView 的 XML 中,添加以下行:

android:onClick="testPrint"

然后在您的活动中,在底部创建一个方法,如下所示:

public void testPrint(View view) {
    Log.i("log", "here");
}

这将在您单击 ImageView 时打印日志。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-06
  • 1970-01-01
  • 2023-02-22
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
相关资源
最近更新 更多