带有EditText滚动问题的Android ListView

时间:2014-10-09 16:02:25

标签: android listview android-listview android-keypad android-input-method

我有一个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;
    }
}

1 个答案:

答案 0 :(得分:0)

尝试在android:imeOptions="actionNext"中设置EditText