列表视图点击进行编辑

时间:2013-10-16 23:39:43

标签: android listview android-listview

我已经设置了一个包含一个编辑文本小部件的列表视图。列表视图填充了一个字符串文件,我想通过单击该项目对每个项目进行更改。代码构建和listview按计划显示。单击该项时,它会获得焦点,但在键盘弹出后没有任何条目时会失去焦点。

els_edit_tiles.xml

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<EditText
    android:id="@+id/listText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10" >
</EditText>

这是onclicklistener,我假设更改需要在这里并且没有发布适配器代码。

   private class ListClickhandler implements OnItemClickListener {

   @Override
   public void onItemClick(AdapterView<?> Adapter, View view, int position, long arg3) {

        TextView listText = (TextView) view.findViewById(R.id.listText);
        String text = listText.getText().toString();
        // Toast.makeText(context, text + " " + position, Toast.LENGTH_LONG).show();

    }

}

1 个答案:

答案 0 :(得分:1)

我认为你的意思是该项目失去了亮点,而不是焦点。无论您点击何处,焦点都会聚焦,无论高亮显示与否。所以,我将为消失的亮点解释一些选项。

无论好坏,他们都是这样设计的。你有几个选择。一个是子类ListView,并试图找出如何添加粘性高亮。 (我尝试了它并让它工作,但由于另一个原因放弃它 - 我想将列表放在ScrollView中,它不适用于ListView)。

另一种选择:使用微调器(也称为下拉列表)。这并不完全符合您的要求,但它确实显示了您选择了哪个项目 - 它是显示旋转器折叠时的项目。

还有第三种选择(我实现了这一点) - 使用LinearLayout并将每个项目添加为布局的子项。你必须实现自己的选择和突出显示,但这需要相对较少的代码(如果你需要我可以提供帮助)。这有效地为您提供了一个显示所有项目的列表 - 它不会滚动。您可以将其与其他元素一起包含在ScrollView中,以将整个集合滚动到一起。