我已经设置了一个包含一个编辑文本小部件的列表视图。列表视图填充了一个字符串文件,我想通过单击该项目对每个项目进行更改。代码构建和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();
}
}
答案 0 :(得分:1)
我认为你的意思是该项目失去了亮点,而不是焦点。无论您点击何处,焦点都会聚焦,无论高亮显示与否。所以,我将为消失的亮点解释一些选项。
无论好坏,他们都是这样设计的。你有几个选择。一个是子类ListView,并试图找出如何添加粘性高亮。 (我尝试了它并让它工作,但由于另一个原因放弃它 - 我想将列表放在ScrollView中,它不适用于ListView)。
另一种选择:使用微调器(也称为下拉列表)。这并不完全符合您的要求,但它确实显示了您选择了哪个项目 - 它是显示旋转器折叠时的项目。
还有第三种选择(我实现了这一点) - 使用LinearLayout并将每个项目添加为布局的子项。你必须实现自己的选择和突出显示,但这需要相对较少的代码(如果你需要我可以提供帮助)。这有效地为您提供了一个显示所有项目的列表 - 它不会滚动。您可以将其与其他元素一起包含在ScrollView中,以将整个集合滚动到一起。