0

AlertDialogのEditTextからテキストの文字列を取得するために、単純化と単純化を行ってきましたが、成功しませんでした

private void showAddSectorDlg() {
   if (BuildConfig.DEBUG) {
           Log.i(Constants.TAG_ACTSECTORS, "showAddSectorDialog() called.");
   }
   LayoutInflater inflater = getLayoutInflater();
   new AlertDialog.Builder(ActSectors.this)
   .setTitle(R.string.menu_new_sector)
   .setMessage(R.string.dlg_sect_add_msg)
   .setView(inflater.inflate(R.layout.dlg_sector_add, null))
   .setPositiveButton(R.string.dlg_save,
           new DialogInterface.OnClickListener() {
               public void onClick(
                       DialogInterface dialog,
                       int whichButton) {
                    EditText mNewSectorName = (EditText) findViewById(R.id.dlg_edt_nsector);   
                            //NullPointerException happens here:
                    String val = mNewSectorName.getText().toString();
                       if (BuildConfig.DEBUG) {
                        Log.i(Constants.TAG_ACTSECTORS, "New Sector Name: "+val);
                       }
                       grabVal(val);
                       dialog.dismiss();
                   }
           })
   .setNegativeButton(R.string.dlg_cancel,
           new DialogInterface.OnClickListener() {
               public void onClick(
                       DialogInterface dialog,
                       int whichButton) {
               }
           }).create().show();
   }

   private void grabVal(String newSector){
   mNSN = newSector;
   callCtlr(Constants.R_DB_ADDSECT);
   }

誰かが私のエラーがどこにあるのか説明できれば幸いです...ありがとう!

4

1 に答える 1

1

AlertDialogのEditTextから値を取得するようにコードを変更します。

 LayoutInflater inflater = getLayoutInflater();
  View view=inflater.inflate(R.layout.dlg_sector_add,null);
   new AlertDialog.Builder(ActSectors.this)
   .setTitle(R.string.menu_new_sector)
   .setMessage(R.string.dlg_sect_add_msg)
   .setView(view)
   //... your code here

次に、viewを使用してAlertDialogからEditTextにアクセスします。

EditText mNewSectorName = (EditText)view.findViewById(R.id.dlg_edt_nsector);
于 2013-02-02T14:49:39.607 に答える