我正在使用AlertDialog Box通过以下代码
为我的聊天应用程序请求用户名 private void request_user_name() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Enter name:");
final EditText input_field = new EditText(this);
builder.setView(input_field);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
name = input_field.getText().toString();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.cancel();
request_user_name();
}
});
builder.show();
}
我调用下面的代码将user_name字符串传递给另一个活动
intent.putExtra("user_name",name);
但是当它为空时,应用程序崩溃。
如果文本字段为空,如何设置默认值,如果没有,则将默认用户名传递给下一个活动。
像
这样的东西if ( name == null ) {
// if Textfield is empty set the username anonymous as default
}
else {
//username from the alertdialog box
}
错误的日志是 log Cat error
并且第51行具有以下代码
user_name = getIntent().getExtras().get("user_name").toString();
对不起我的代码,我非常处于初学阶段。
提前致谢。
答案 0 :(得分:0)
试试这个
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
name = input_field.getText().toString().trim();
if(name.isEmpty()){
name = default_name;
}
...
intent.putExtra("user_name", name);
...
}
});
编辑:尝试使用此
获取数据Bundle bundle = intent.getExtras();
if(bundle != null){
String name = bundle.getString("user_name");
}
答案 1 :(得分:0)
而不是调用if(name == null){} 直接请使用下面的崩溃以避免崩溃 -
if(getIntent()!=null)
{
if(getIntent().getStringExtra("user_name")!=null)
{
String rcvdData=getIntent().getStringExtra("user_name");
}
}