2012-07-10 85 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); 
}