1

我在ListView的Header中有一个EditText以及一个Spinner和Button。出于某种原因,EditText不允许我在其中输入内容。弹出软键盘,光标出现在onclick框中,并且键盘识别出我正在键入,但是框中没有显示任何内容。ListView的标题中的EditText是不可编辑的

下面是处理制作标题的onCreate的java。

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.keyvalue); 

    m_items = Utils.getTrackerCursor(this, 0, ""); 

    m_items.getCount(); 

    startManagingCursor(m_items); 

    String[] columns = new String[] {"name","value","result"}; 
    int[] to = new int[] {R.id.txtkeyValue_rowTitle, R.id.txtkeyValue_rowValue, R.id.txtkeyValue_rowResult}; 


    m_adapter = new trackerAdapter(this, R.layout.keyvalue_row, m_items, columns, to); 




    Button btnRollAll = new Button(this); 
    btnRollAll.setText("Roll All"); 


    final Spinner spinTrackerGroups = new Spinner(m_Context); 


    m_trackerGroups = Utils.getTrackerGroups(m_Context); 
    String[] spinVals = triMap.getArray(m_trackerGroups); 

    ArrayAdapter<CharSequence> Adap_spinTrackerGroups = new ArrayAdapter<CharSequence>(
      this, android.R.layout.simple_spinner_item, spinVals); 

    Adap_spinTrackerGroups.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinTrackerGroups.setAdapter(Adap_spinTrackerGroups); 

    EditText search = new EditText(m_Context); 
    search.setHint("Search"); 
    search.setWidth(200); 



    LinearLayout lay = new LinearLayout(m_Context); 
    lay.addView(spinTrackerGroups); 
    lay.addView(search); 
    lay.addView(btnRollAll); 


    getListView().addHeaderView(lay); 


    this.setListAdapter(m_adapter); 


    LinearLayout.LayoutParams params = (LayoutParams) spinTrackerGroups.getLayoutParams(); 
    params.width = 230; 
    spinTrackerGroups.setLayoutParams(params); 
    spinTrackerGroups.setSelection(1); 


} 

我包括listview的xml以及单个listview行的xml良好的措施。

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@android:id/android:list" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
    </ListView> 

</LinearLayout> 



    <?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" > 

    <TableLayout 
     android:layout_width="match_parent" 
     android:layout_height="50dp" > 

     <TableRow 
      android:id="@+id/tableRow1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" > 






       <TextView 
        android:id="@+id/txtkeyValue_rowTitle" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_span="3" 
        android:layout_weight=".5" 
        android:ellipsize="middle" 
        android:paddingLeft="10dp" 
        android:text="TextView" 
        android:textSize="16sp" 
        android:singleLine="true" /> 

    </LinearLayout> 
+0

这里的东西我注意到了。每次我尝试输入文本时,在logcat的信息屏幕中,我会得到“beginbatchedit:先前的批量编辑没有结束”和“在事务中调用beginbatchedit()时忽略。” 我搜索了这些错误,但互联网似乎并不知道它们是什么。 – JMD 2012-07-06 23:45:09

回答

1

看到这个线程请:Focusable EditText inside ListView

+0

没有工作,结果与以前相同。 :( – JMD 2012-07-06 22:04:46

+0

对不起,我编辑帖子 – 2012-07-06 22:12:21

+0

这篇文章涉及跟踪球/慢跑者的导航,他明确地说,它只是在触摸EditText时有效。 “'对我的列表视图),但没有雪茄 – JMD 2012-07-06 22:24:46