1

我正在使用bignerdranch的可扩展回收站视图。在我的子视图中,我放置了一个编辑文本,用户可以在其中对父视图上显示的问题发表评论。

我的问题是,我希望在编辑文本失去焦点后保存用户输入。(在这种情况下,我有 3 个父母,每个父母都有 1 个 editText)。但是,当我输入编辑文本 1专注编辑文本 2而不输入时……编辑文本 2在失去焦点后会占用编辑文本 1 的输入。

我尝试使用文本观察器,并在文本更改后将代码放入其中。但应用程序冻结并在一段时间后停止工作。如果有更好的方法让我相应地保存?

mCatatan是我的编辑文本。

@Override
    public void onBindChildViewHolder(final ATPChildViewHolder atpChildViewHolder, int i, Object childObject) {
        final ATPChild atpChild = (ATPChild) childObject;

        final String text = atpChildViewHolder.mCatatanInput.getText().toString();
        if(!text.equals("")) {
            atpChild.setDetail(text);
            atpChildViewHolder.mCatatanInput.setText(atpChild.getDetail());
        } else {
            atpChildViewHolder.mCatatanInput.setText(atpChild.getDetail());
        }


//        todo: fixed catatan being saved to another catatan
        atpChildViewHolder.mCatatanInput.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (!hasFocus) {
                    Log.d(TAG, "onFocusChange: ");
                    atpChild.setDetail(atpChildViewHolder.mCatatanInput.getText().toString());
                    atpChildViewHolder.mCatatanInput.setText(atpChild.getDetail());
                }
            }
        });
    }
4

0 回答 0