代码之家  ›  专栏  ›  技术社区  ›  Stelios Papamichail

对话框实例中的EditText为空[重复]

  •  -1
  • Stelios Papamichail  · 技术社区  · 7 年前

    这个问题已经有了答案:

    我有一个对话框,在第一次运行时弹出,提示用户在editText视图中输入用户名,但是每当我试图通过 editText.getText(); 我收到一个NullPointerException,它说editText为空。这里缺少什么?我试着放大布局并访问 .getText() 方法从一个活动中,但没有。这是我的代码:

    public class UsernameDialog extends DialogFragment {
    
    @BindView(R.id.editText) EditText mEditText;
    @BindView(R.id.username)
    TextView menu_usr;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
    
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
    
        // inflate the layout using the dialog themed context
        final Context context = getActivity();
        final LayoutInflater inflater = LayoutInflater.from(context);
        final View view = inflater.inflate(R.layout.username_dialog,null,false);
    
        DialogInterface.OnClickListener posListener = new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                menu_usr.setText(mEditText.getText());
                Log.d("USERNAME",mEditText.getText().toString());
            }
        };
    
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
                .setTitle("Choose your username")
                .setView(view)
                .setPositiveButton("OK",posListener);
        return builder.create();
    }
    }
    

    错误日志:

      Process: com.dcv.spdesigns.dokkancards, PID: 373
    java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
        at com.dcv.spdesigns.dokkancards.ui.UsernameDialog$1.onClick(UsernameDialog.java:48)
        at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:177)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6938)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   prashant17 OzanTabakoglu    7 年前

    添加

    Butterknife.bind(this,view)