作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要单击 fab,自定义对话框将被调用。那么,如何从对话框(DialogFragment)获取数据并在具有此数据的recyclerview 中创建一个新项目?
已编辑:现在我有 NullPointerException。代码在这里:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
recyclerView = findViewById(R.id.recyclerView);
adapter = new UserAdapter(users, this);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
createDialog();
}
});
}
public void createDialog(){
View view = LayoutInflater.from(this).inflate(R.layout.dialog_user, null, false);
final EditText username = view.findViewById(R.id.username);
final EditText pass = view.findViewById(R.id.password);
final AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setTitle("Title")
.setView(view)
.setPositiveButton("Add", null)
.setNegativeButton("Cancel", null)
.setCancelable(false);
final AlertDialog dialog = builder.create();
dialog.show();
dialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//update RecyclerView
users.add(new User(username.toString(), pass.toString()));
dialog.dismiss();
}
});
}
最佳答案
您可以使用简单的 AlertDialog 和 RecyclerView 来实现这一点。谢谢
View view = LayoutInflater.from(this).inflate(R.layout.edit_layout, null, false);
final EditText editText = view.findViewById(R.id.editText);
AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setTitle("Title")
.setView(view)
.setPositiveButton("Add", null)
.setNegativeButton("Cancel", null)
.setCancelable(false);
AlertDialog dialog = builder.create();
dialog.show();
dialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//fdgdf
if(!TextUtils.isEmpty(editText.getText())) {
//update RecyclerView
dialog.dismis();
} else {
//Toast to show empty
}
}
});
R.layout.edit_layout
包含 ID 为 editText 的 EditText
关于java - 如何从自定义对话框中获取数据并在 recyclerview 中创建一个新项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58383180/
我是一名优秀的程序员,十分优秀!