我有一个ListActivity,其中包含带有EditText的列表项。
当列表中有许多项目(比如~25)时,在给定时间只能看到7项。 当我点击一个项目时,我希望键盘显示“下一步”并滚动1 - 25。 但最终发生的事情是,我将获得“下一个”直到第6项并且我在第7项上获得“完成”。所以,基本上只显示在Visible行上。 注意:如果我在editText上设置“inputType”(可能是它的bug或功能:),我会自动获得“Next”而不设置imeoption。)
以下是我在AndroidManifest.xml中所做的操作,因此视图会调整以显示光标并自动滚动列表。
<activity
...
android:windowSoftInputMode="adjustUnspecified|adjustPan">
在Activity onCreate中我将Focusable设置为false,以便editText获得焦点而不是listview本身。
ListView listView = getListView();
listView.setFocusable(false);
在适配器类中,我设置了editText的inputType。这样做会给我“下一步”而不是“回车”。
EditText editText = (EditText) view.findViewById(R.id.data_text);
editText.setText(getItem(position));
editText.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
我搜索了“SO”和谷歌,我还没有找到任何线索。
编辑: 这是我的适配器类
class ItemAdapter extends ArrayAdapter<String> {
public ItemAdapter(Context context, int resource) {
super(context, resource);
}
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
View view = convertView;
if (view == null) {
LayoutInflater layoutInflater = (LayoutInflater) getContext().getSystemService(LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.list_item, parent, false);
}
final EditText editText = (EditText) view.findViewById(R.id.input_text );
String data = getItem(position);
editText.setText(data);
editText.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
return view;
}
}
答案 0 :(得分:0)
尝试在android:imeOptions="actionNext"
中设置EditText
。