2012-07-10 148 views
4

我有一个ListView在那ListView我有一个TextViewsEditTexts在它的行。 当我按下该行的任何位置时,我想让EditText聚焦,以便输入文字。EditText焦点在一个ListView

问题是我无法得到这个工作。当我将EditText置于ListView时,当我点击ListView时,OnItemClick不会响应。

我试图在EditText使用focusable="false"和它让我再次点击ListView,但我不能让EditText扯平了可调焦设置为true后对焦。 接下来,我尝试在ListView中使用android:descendantFocusability="beforeDescendants",但它似乎没有任何更改,但仍然无效。

有没有人有一个想法,我可以做什么使它的工作?

+0

[ListView中的Focusable EditText]的可能重复(http://stackoverflow.com/questions/2679948/focusable-edittext-inside-listview) – blahdiblah 2013-10-31 23:40:23

回答

0

您可以在xml行布局中添加一个属性为enabled="false",并在onItemClickListener上可以setEnabled(true)然后setFocusable(true),这应该可以解决它。

3

做这样

ListView listView = (ListView) findViewById(R.id.yourListViewId); 
listView.setItemsCanFocus(true); 
listView.setClickable(false); 

从XML获取列表视图对象后,禁止在该列表视图中点击,并通过将焦点转移到孩子的意见

4

试试这个,它应该让你点击一行,然后关注EditText(修改自SO Answer):

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