ListView中的Android EditText – 键盘

我的EditText出了问题。 我使用下面的适配器:

 public class RowTextViewAdapter extends BaseAdapter { ... public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (rowTitles.get(position).equals("edit")) { if(et == null){ et = new EditText(activity); et.setText("Test"); } return et; } else { convertView = new TextRow(activity); holder = new ViewHolder(((TextRow) convertView).getTextView(), ((TextRow) convertView).getImageView()); convertView.setTag(holder); holder.getTextView().setText(StringManager.getInstance().getText(rowTitles.get(position), activity)); holder.getImageView().setImageBitmap(assetController.getBitmap(additiveIcons.get(position) + ".png", null)); return convertView; } } } 

ListActivity

 public class AppSettingActivity extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); adapter = new RowTextViewAdapter(this); adapter.addRowView("account", "arrowDw"); adapter.addRowView("password", "arrowDw"); setListAdapter(adapter); } ... protected void onListItemClick(ListView listView, View view, int position, long id) { switch (position) { case 0: accIsEditable = adapter.setEditable(position); break; case 1: if(accIsEditable) { //TODO do something.. break; } pwIsEditable = adapter.setEditable(position); break; ... } } 

如果我点击第一个项目,我在pos上添加一个新的列表项。 1(pos:0,1,2,…)。 现在EditText字段被添加到列表中。

 ListView: ---------------------------- ------------------------- Account v Account ^ ---------------------------- ==> ------------------------- Passowrd v [::::::::EditText:::::::] ---------------------------- ------------------------- //more.. Password v ---------------------------- ------------------------- //more.. ------------------------- 

如果现在点击EditText字段,它将显示虚拟键盘并失去EditText焦点。 我再次点击,它获得焦点。 但是,如果我写东西,文本只显示在EditText字段,如果我点击它,而不是频繁的,而我正在写…

任何想法来解决这个更新问题?

Related of "ListView中的Android EditText – 键盘"

如果这仍然是一个问题,请看看这个项目: ListView内的Focusable EditText

这个改变可能有帮助。

更改为列表视图:

 <ListView android:id="@android:id/list" android:layout_height="fill_parent" android:layout_width="fill_parent" android:descendantFocusability="beforeDescendants" /> 

更改为mainfest.xml中的活动:

 <activity android:name= ".yourActivity" android:windowSoftInputMode="adjustPan"/> 

有些时候,在清单活动或xml中使用android:windowSoftInputMode="stateAlwaysHidden"时,会失去键盘焦点。 所以首先检查你的XML和清单中的属性,如果它在那里只是删除它。 添加这些选项来清单文件中的侧面活动android:windowSoftInputMode="adjustPan" ,并将此属性添加到xml中的列表视图android:descendantFocusability="beforeDescendants"