【问题标题】:How to select custom listview item with edittext?如何使用edittext选择自定义列表视图项目?
【发布时间】:2014-01-10 09:13:48
【问题描述】:

我已经制作了多个只有文本视图的自定义列表视图项目,当我单击它们时,我可以选择它们。但现在我制作了一个包含 3 个编辑文本的列表项,但它不起作用。甚至试图在它旁边放一个 textview,但这并没有帮助。

有人知道怎么做吗?

提前致谢!

【问题讨论】:

  • 什么不起作用?你不能按你的编辑文本??
  • 你想达到什么目的?您可以发布您的需求的 xml 或快照吗??
  • 我希望能够选择一个列表项并将其删除。但不知何故,编辑文本正在干扰!过去我只用 textviews 制作列表项,我能够选择项目并以相同的方式构建它!

标签: android listview textview android-edittext listitem


【解决方案1】:

您只需要您的列表项(无论是什么类型 - XYZLayout 或任何其他视图)来实现 Checkable 接口。 “可检查”实际上意味着在 Android 术语中可以选择。

您可以将此类复制到您的项目中。请注意,它是RelativeLayout,但您也可以使其与其他布局类型一起使用:

CheckableRelativeLayout.java

【讨论】:

    【解决方案2】:

    我知道我参加聚会迟到了,但我正在为可能面临同样问题的人发帖。要使您的列表项可选择,您需要在 getView() 中使 setFocusable(false) 无法聚焦您的 EditText。

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      convertView = inflater.inflate(R.layout.listitem, null);
      EditText et1 = (EditText) listItemView.findViewById(R.id.view1);
      EditText et2 = (EditText) listItemView.findViewById(R.id.view2);
    
      // You need to make EditText not editable to prevent them to intercept focus from list view.
      et1.setFocusable(false);
      et2.setFocusable(false);
    
      CustomListItem item = listViewItemList.get(position);
      et1.setText(item.view1Value);
      et2.setText(item.view2Value);
    
      return listItemView;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-20
      • 2013-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多