2017-01-26 7 views
-1

私はアンドロイドスタジオの新人です。司会者が自分のプログラムをデモしたところでチュートリアルを試しましたが、コードをタイプすると永遠にsetOnClickListener赤で強調表示されます。ここで私は間違っていますsetOnClickListenerは常に赤です

TextView Resultant = (TextView) findViewById(R.id.Resultant); 
EditText Percentage_Input = (EditText) findViewById(R.id.Percentage_Input); 
EditText Number_Input = (EditText) findViewById(R.id.Percentage_Input); 

@Override 
public View findViewById(@IdRes int id) { 
    return super.findViewById(R.id.Percentage_Input); 
} 

Button calc_btn = (Button) findViewById(R.id.calc_btn); 
calc_btn.setOnClickListener(new View.OnClickListener(){ 

    public void onClick((View) view); { 

     float percent = Float.parseFloat(Percentage_Input.getText().toString()); 
     float dec = percent/100; 
     float Qty = Float.parseFloat(Number_Input.getText().toString()); 
     float total = dec*Qty; 
     Resultant.setText(Float.toString(total)); 


    } 
}) 

答えて

0

移動;最後にこれを入れてください:

TextView Resultant = (TextView) findViewById(R.id.Resultant); 
EditText Percentage_Input = (EditText) findViewById(R.id.Percentage_Input); 
EditText Number_Input = (EditText) findViewById(R.id.Percentage_Input); 

@Override 
public View findViewById(@IdRes int id) { 
    return super.findViewById(R.id.Percentage_Input); 
} 

Button calc_btn = (Button) findViewById(R.id.calc_btn); 
calc_btn.setOnClickListener(new View.OnClickListener(){ 

    public void onClick((View) view) { 

     float percent = Float.parseFloat(Percentage_Input.getText().toString()); 
     float dec = percent/100; 
     float Qty = Float.parseFloat(Number_Input.getText().toString()); 
     float total = dec*Qty; 
     Resultant.setText(Float.toString(total)); 


    } 
}); 
0

私はコードが適切な場所にないと思います。私はあなたがfindViewByIdをオーバーライドしているのを見ます(なぜでしょうか?)そして残りのコードも同じレベルにあります。このコードをすべてライフサイクルメソッドに入れる必要があります。

たぶんまた

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    TextView Resultant = (TextView) findViewById(R.id.Resultant); 
    EditText Percentage_Input = (EditText) findViewById(R.id.Percentage_Input); 
    EditText Number_Input = (EditText) findViewById(R.id.Percentage_Input); 
    Button calc_btn = (Button) findViewById(R.id.calc_btn); 
    calc_btn.setOnClickListener(new View.OnClickListener() { 

     public void onClick((View) view); { 

      float percent = Float.parseFloat(Percentage_Input.getText().toString()); 
      float dec = percent/100; 
      float Qty = Float.parseFloat(Number_Input.getText().toString()); 
      float total = dec * Qty; 
      Resultant.setText(Float.toString(total)); 

     } 
    }); 
} 

onCreate()にあなたはOnClickListenerの設定の最後にセミコロン;が欠落しています。

0

findViewByIdメソッドを削除します。これは奇妙なもので、常に同じビューを返します。

残りのコードをonCreateの内側に置き、欠落部分を追加します。最後に。

関連する問題