等待对话框关闭,将项目添加到recyclerview

问题描述 投票:0回答:1

如果有一个recyclerview,它应该获得一个新项目,其名称在Alertdialog中设置。问题在于,使用以下代码在对话框仍处于打开状态时会创建该项目。在这种情况下如何等待输入?如果必须挂接onDismiss,则没有要设置正确项目名称的Recyclerview信息。

    HouseConfig config = new HouseConfig(this);
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Enter new Category name");
    final EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_TEXT);
    builder.setView(input);
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            m_text = input.getText().toString();
            dialog.dismiss();
        }
    });
    builder.create().show();
    Log.v(TAG,"m_text: " + m_text);
    config.addNewCategoryWithViewOrder(new Category(m_text, R.drawable.ic_books, -1));
    RecyclerView rv = (RecyclerView) v.getParent().getParent().getParent();
    rv.setAdapter(new CategoryRecycleListAdapter(config.getViewOrderSortedCategories(), this));
    rv.scrollToPosition(config.getCategorySize() - 1);
    rv.getAdapter().notifyItemRangeInserted(config.getCategorySize() - 2, 1);
    rv.getAdapter().notifyDataSetChanged();
java android android-recyclerview android-alertdialog
1个回答
0
投票

您应该将创建新Item的逻辑放在onClick方法中。在这种情况下,将在对话框打开后立即创建新项目(我想是使用先前的m_text)。

© www.soinside.com 2019 - 2024. All rights reserved.