2016-10-16 4 views
1

私はアンドロイドスタジオを使用して新しいApp.Iを構築し、ボタンのアクションを作成しています。以下はコードスニペットです。私は今、最初に私は編集テキストを作成するアンドロイドについて勉強しています整数にボタンを編集する

final EditText text = (EditText) findViewById(R.id.editText); 
     Button button = (Button) findViewById(R.id.addButton); 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     button.setOnClickListener(
       new View.OnClickListener(){ 

        @Override 
        public void onClick(View v) { 
         try { 
          int myNum = Integer.parseInt(text.getText().toString()); 
         } catch(NumberFormatException nfe) { 

         } 
        } 
       } 
     ); 

モジュールを実行しようとすると、このエラーメッセージが表示されます。

enter image description here このエラーメッセージは何ですか。私はこれを理解できません。

+1

エラーメッセージは、アプリケーションがクラッシュしたことを通知しています。おそらく、レイアウトが膨張する前にfindViewByIdを呼び出しているため、オブジェクトは無効です。 –

+0

エラースタックトレースを確認しましたか?ログを確認し、ここにエラーを貼り付けてください。 –

答えて

0

ちょうどこの試してください: -

super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

final EditText text = (EditText) findViewById(R.id.editText); 
    Button button = (Button) findViewById(R.id.addButton); 

    button.setOnClickListener(
      new View.OnClickListener(){ 

       @Override 
       public void onClick(View v) { 
        try { 
         int myNum = Integer.parseInt(text.getText().toString()); 
        } catch(NumberFormatException nfe) { 

        } 
       } 
      } 
    ); 
1
final EditText text = (EditText) findViewById(R.id.editText); 
Button button = (Button) findViewById(R.id.addButton); 

これらの線が

super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

すなわち、

super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
final EditText text = (EditText) findViewById(R.id.editText); 
Button button = (Button) findViewById(R.id.addButton); 

そうでなければ、あなたのアクティビティビューを見つけることができないだけで後に上記の行を置くをid 'editText'と 'addButtに'。 setContentView(R.layout.activity_main)を呼び出すことによって、activity_mainがアクティビティのレイアウトであり、参照しているすべてのビューがこのレイアウトのものであることをアクティビティと呼びます。

関連する問題