通过对话框提示用户输入信息(如账号和密码)是比较常用的人机交互界面,一开始以为在Dialog中添加对话框可能比较麻烦,直接集成Activity,然后将其声明为Dialog形式展现。后来看了一下代码,发现Dialog类本身就有个setView()方法可以用,虽然传入参数是View类型,但是可以扩展成EditText,这样就很简单了。关键代码如下:
private void buildEditDialog(){
final EditText text = new EditText(mContext);
new AlertDialog.Builder(mContext).setTitle(R.string.new_tab)
.setView(text)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String string = text.getText().toString();
int size = string.length();
if(size == 0 || size > TAB_LENGTH_MAX){
buildEditDialog();
Toast.makeText(mContext, getResources().getString(R.string.check_length), 500).show();
}else{
addItem(string);
}
}
})
.setNegativeButton(R.string.cancel, null)
.show();
}