0

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

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();

    }

}
4

1 回答 1

1

我假设您的意思是该项目失去了亮点,而不是焦点。焦点在您点击的任何地方,无论亮点是否显示都在那里。所以,我将解释消失的亮点的一些选项。

无论好坏,他们都是这样设计的。你有几个选择。一种是继承 ListView 并尝试弄清楚如何添加粘性突出显示。(我尝试过并让它工作,但由于另一个原因放弃了它 - 我想将列表放在一个 ScrollView 中,这不适用于 ListView)。

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

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

于 2013-10-17T00:15:17.153 回答