【问题标题】:problems getting a specific view from a listView in Android从 Android 中的 listView 获取特定视图的问题
【发布时间】:2016-03-09 13:25:28
【问题描述】:

我很难从 listView 中获取特定视图,甚至是行。我已经阅读了很多关于它的内容,这似乎是我在 Android 中做过的最简单的事情之一,但它不起作用,我猜我缺少一些微不足道的东西。

这是我的 listView (lvDetail) 代码,由列表“myList”填充:

  lvDetail = (ListView) findViewById(R.id.feedlistView);

  lvDetail.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {

    @
    Override
    public void onItemClick(AdapterView <? > parent, View view, int position, long id) {
      ListData item = myList.get(position);
      Toast.makeText(FeedActivity.this, "You selected : " + item, Toast.LENGTH_SHORT).show();
      final String TAG = "feed";
      Log.i(TAG, "onItemClick: " + item);
    }
  });

  lvDetail.setAdapter(new MyBaseAdapter(context, myList));

当我按下everthing(行\视图)时,什么也没有发生。 我已经尝试了一百万种组合,我的猜测是我在以下地方错过了它,但我尝试了很多变化,但没有任何效果: 1. XML 布局,尝试使用“可点击”。没用。 2. 也许我正在使用的 BaseAdapter 中有一些东西。 3. 可能是“setOnItemClickListener”行和“setAdapter”行的顺序。 4. 也许在我的 FeedActivity 活动中实现一些东西。 5. 可能是“onItemClick”行中的“父”\“视图”。

请帮我弄清楚我的代码出了什么问题。

谢谢! 吉尔。

【问题讨论】:

  • 您的 setOnItemClick 是否被调用?如果没有被调用,那么您的适配器是否有按钮、复选框或任何其他可聚焦的视图?
  • 你能显示行布局吗?
  • 我认为它没有被调用,因为当我按行中的任何位置时,我看不到 logcat 的变化。
  • 该行有按钮、图像按钮等。它们是用 android:clickable="true" 定义的
  • 你只有那些问题,删除可点击的按钮并在你的项目中应用下面的解决方案,它会起作用。

标签: android listview


【解决方案1】:

在你的适配器 xml 文件下面写,

android:descendantFocusability="blocksDescendants"

在listview初始化写入后的activity中,

 listview.setItemsCanFocus(true);

希望这能解决您的问题。

【讨论】:

  • 如果它适用于您的应用程序,请接受答案,提前致谢。
  • 谢谢!现在我可以按整行,但不能按行中的特定按钮。请帮忙:)
  • 对于特定的按钮按下你需要在你的适配器类中为按钮编写点击监听器。
  • 无法做到。你能告诉我我应该把它放在适配器的什么地方吗?用什么语法?
  • 您能否在此处添加您的适配器类代码,以便我也可以帮助您编写代码。
猜你喜欢
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-08
  • 2010-09-20
  • 1970-01-01
相关资源
最近更新 更多