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