私はアンドロイドで簡単な電卓を作ろうとしています。Android onClickメソッドエラー
詳細:
私は複数のボタンがあり、ボタンのすべてのビューでのonClickメソッドを設定しています。私はスイッチのステートメントで個人のIDを取得します。テスト目的のために、パーセントボタンをクリック可能にして、EditTextにボタンのテキストを表示しようとしました。
しかし、私はボタンをクリックすると、アプリの亀裂。
これは私のコードです:
public class MainActivity extends Activity {
Button show_cam_ctrl,
show_voice_ctrl,
cal_btn_clear,
cal_btn_del,
cal_btn_percent,
cal_btn_divide,
cal_btn_plus,
cal_btn_pi,
cal_btn_root,
cal_btn_dot,
cal_btn_equal,
cal_btn_power,
cal_btn_ptrl,
cal_btn_sin, cal_btn_cos, cal_btn_tan,
cal_btn_sinIn, cal_btn_cosIn, cal_btn_tanIn,
cal_btn_0, cal_btn_1, cal_btn_2, cal_btn_3, cal_btn_4, cal_btn_5, cal_btn_6, cal_btn_7, cal_btn_8, cal_btn_9;
TextView ma_res_txt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Control Buttons
show_cam_ctrl = (Button) findViewById(R.id.show_cam_ctrl);
show_voice_ctrl = (Button) findViewById(R.id.show_voice_ctrl);
show_cam_ctrl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(MainActivity.this,cam_calculator.class);
startActivity(i);
}
});
show_voice_ctrl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(MainActivity.this,voice_calculator.class);
startActivity(i);
}
});
}
//Calculator main page logic
public void calculate(View v){
ma_res_txt = (TextView) findViewById(R.id.ma_res_txt);
String t;
int length = ma_res_txt.getText().length();
switch (v.getId()){
case R.id.cal_btn_clear:{
ma_res_txt.setText("");
break;
}
case R.id.cal_btn_del:{
String text = ma_res_txt.getText().toString();
ma_res_txt.setText(text.substring(0, text.length() - 1));
}
case R.id.cal_btn_percent:{
t = "%";
ma_res_txt.setText(t);
break;
}
}
}
@Override
public void finish() {
super.finish();
}
}
logcat:
7月29日12:19:10.734 27279から27279/com.example.nadeemahmad.smartcalculator E/AndroidRuntime : 致命的除外:メイン プロセス:com.example.nadeemahmad.smartcalculator、PID:27279 java.lang.IllegalStat eException:アンドロイドの親や先祖コンテキスト方法 計算()(ビュー)を見つけることができませんでした:ID 「cal_btn_percent」 とビュークラスandroid.widget.Buttonに定義されているのonClick 属性 android.view.View $ DeclaredOnClickListenerで.resolveMethod(View.java:5076) android.view.View $ DeclaredOnClickListener.onClick(View.java:5035) at android.view.View.performClick(View.java:6205) android.widget.TextView .performClick(TextView.java:11103) android.view.View $ PerformClick.run(View.java:23653) android.os.Handler.handleCallback (Handler.java:751) (android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread .javaファイル:6682)com.android.internalで com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1520) でjava.lang.reflect.Method.invoke(ネイティブメソッド) で .os.ZygoteInit.main(ZygoteInit.java:1410)
ありがとう、これはエラーです –