Android 在列表视图中编辑文本焦点
我有一个Android 在列表视图中编辑文本焦点,android,listview,android-edittext,Android,Listview,Android Edittext,我有一个列表视图,在这个列表视图中我有一行,其中有一些文本视图和编辑文本。 当我按行上的任意位置时,我希望EditText对焦,以便输入文本 问题是我不能让它工作。当我在列表视图中放置EditText时,单击列表视图时,OnItemClick将不会响应 我尝试在EditText上使用focusable=“false”,它允许我再次单击ListView,但即使将focusable设置为true,我也无法让EditText获得焦点。 接下来,我尝试在列表视图中使用android:genderantf
列表视图
,在这个列表视图
中我有一行,其中有一些文本视图
和编辑文本
。
当我按行上的任意位置时,我希望EditText
对焦,以便输入文本
问题是我不能让它工作。当我在列表视图中放置EditText
时,单击列表视图时,OnItemClick
将不会响应
我尝试在EditText
上使用focusable=“false”
,它允许我再次单击ListView
,但即使将focusable设置为true,我也无法让EditText
获得焦点。
接下来,我尝试在列表视图中使用android:genderantfocusability=“beforestendents”
,但它似乎没有做任何更改,仍然不起作用
有人知道我能做些什么来让它工作吗?您可以在xml行布局中添加一个属性作为enabled=“false”
,在onItemClickListener上,您可以setEnabled(true)
然后setFocusable(true)
,这应该可以解决问题。像这样做吗
ListView listView = (ListView) findViewById(R.id.yourListViewId);
listView.setItemsCanFocus(true);
listView.setClickable(false);
即
从xml获取listview对象后,禁用单击此listview并将焦点传递给子视图。尝试此操作,您应该可以单击一行并聚焦EditText(由此修改):
public void已选中(AdapterView列表视图、视图视图、int位置、长id)
{
EditText yourEditText=(EditText)view.findViewById(R.id.youredittextid);
listView.SetDegenantFocusability(ViewGroup.FOCUS在子体之后);
yourEditText.requestFocus();
}
未选择公共无效(AdapterView列表视图)
{
//onNothingSelected在您开始滚动时发生,因此我们需要防止它停留
//如果EditText已聚焦,则在AfterDescents模式下
listView.SetDegenantFocusability(ViewGroup.FOCUS在子体之前);
}
public void onItemSelected(AdapterView<?> listView, View view, int position, long id)
{
EditText yourEditText = (EditText) view.findViewById(R.id.youredittextid);
listView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
yourEditText.requestFocus();
}
public void onNothingSelected(AdapterView<?> listView)
{
// onNothingSelected happens when you start scrolling, so we need to prevent it from staying
// in the afterDescendants mode if the EditText was focused
listView.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
}