2011-12-14 6 views
0

私は、ユーザーが新しいカテゴリを入力するダイアログボックス内にEditTextを持っています。しかし、私がEditTextの中の値にアクセスしようとすると、nullpointer例外が発生します。ダイアログボックス - 編集中の値へのアクセスの問題

実行プロセス。

カテゴリのスピナーがあります ユーザーがスピナーから新しいカテゴリを選択すると、ダイアログボックスがユーザーに表示されます。次のようにダイアログの

コードは次のとおりです。私はとき太字のラインで発生する、NullPointer例外を取得しています

//check if spCategories == new category 
    if(arg0.getSelectedItem().toString().equals("New Category")) { 
    //Show dialog box for adding new category 
    Dialog dialog = new Dialog(AddTransaction.this); 
    dialog.setContentView(R.layout.newcategory); 
    dialog.setTitle("New Category"); 
    dialog.setCancelable(true); 
    dialog.show(); 

    Button btnAddCat = (Button) dialog.findViewById(R.id.btnAddCategory); 
    final EditText etCategory = (EditText) findViewById(R.id.etNewCategory); 

    btnAddCat.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     **Log.v("EXT", "Category type is : " + etCategory.getText());** 
    } 
         } 
    }); 

任意のアイデア。ダイアログのレイアウトはXMLファイルで定義されています。

答えて

1

ライン:

final EditText etCategory = (EditText) findViewById(R.id.etNewCategory); 

は、あなたがそれを変更する必要があり、間違っている: "ダイアログ" がなければ

final EditText etCategory = (EditText) dialog.findViewById(R.id.etNewCategory); 

ダイアログボックスではなく、アクティビティレイアウト内でそのビューを検索しています。

+0

優秀 - 奇妙なことに、私はdialog.findを使って正しい方法でボタンを宣言しました...... - しかし、編集テキストについては考えていませんでした –

+0

問題ありませんFarhan!答えを正しいとマークした方がいいですね、ありがとう! – gwa

関連する問題