【问题标题】:Android: EditText inside ArrayAdapter inside FragmentAndroid:片段内部的 ArrayAdapter 内部的 EditText
【发布时间】:2014-07-23 17:48:11
【问题描述】:

标题中描述的情况。

这里的最小示例代码:

public class FrgData extends Fragment {
    private View rootView;
    private DataAdapter dataAdapter;

    public FrgData() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.data, container, false);

        ListView dataListView = (ListView)rootView.findViewById(R.id.Data);
        dataAdapter = new DataAdapter(getActivity().getBaseContext(), R.layout.data_item);
        dataListView.setAdapter(dataAdapter);

        for (int i = 0; i < 40; i++) {
            dataAdapter.add(new tData());
        }

        return rootView;
    }

    private class DataAdapter extends ArrayAdapter<tData> {
        public DataAdapter(Context context, int id) {
            super(context, id);
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View v = convertView;

            if (v == null) {
                v = LayoutInflater.from(getContext()).inflate(R.layout.data_item, null);
            }

            return v;
        }
    }
}

"tData" 是一个 ArrayList。

“data_item”是水平线性布局内的简单数字 EditText。

这种行为完全不稳定。 EditTexts 被完美地创建。问题是如果我选择一个,键盘首先不是“数字”,而是字母数字。如果我选择另一个,键盘会神奇地变为“数字”,但光标是不可见的。不过我可以打字。退出键盘时,数字要么消失,要么在下面的其他 EditText 中重复!这些副本似乎以相等的间隔(8 或 12)出现,所以我怀疑这与(或缺乏)适当的初始化有关。 我无法弄清楚我的错误。

【问题讨论】:

  • 当我将计数从 40 减少到 4 时它可以工作。5 它不会。这是当我注意到 4 行键盘不与列表重叠的时候。 5 就可以了。然后我删除了列表上方的一些描述文本。现在有了更多的空间,它甚至可以使用 5 行......这到底是什么?这是Android中的错误吗???
  • 键盘与列表重叠后不久,被点击的EditText失去焦点,键盘变为字母数字...
  • 有人有想法吗?

标签: listview arraylist android-edittext fragment android-arrayadapter


【解决方案1】:

我目前的“解决方案”是手动(!)添加 40 行。我现在工作,虽然这是一个非常丑陋的情况。每行需要 3 个 EditTexts 和一个 SeekBar。整个 Fragment 现在有 160 个控件... 我想知道是否有更好的方法?用户在编辑一个设置时需要对所有其他设置有一个概览。

【讨论】:

    猜你喜欢
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多