当Textview为空时,在Textview中设置默认值

时间:2018-04-16 01:59:01

标签: java android android-studio textview

我正在使用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();

对不起我的代码,我非常处于初学阶段。

提前致谢。

2 个答案:

答案 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");
   }
  }
相关问题