嘿我试图这样做,以便一旦我点击一个按钮,它会计算一些东西,然后将EditText更改为答案。当我点击按钮时,程序崩溃了!请帮助我,因为我是Android新手。
java代码:
public class areacircle extends Activity {
TextView radiusTextView;
TextView areaTextView;
EditText radiusEditText;
Button areaButton;
EditText answerEditText;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.areacircle);
areaButton = (Button) findViewById(R.id.areaButton);
answerEditText = (EditText) findViewById(R.id.answerEditText);
radiusEditText = (EditText) findViewById(R.id.radiusEditText);
}
public void findarea(){
answerEditText = (EditText) findViewById(R.id.answerEditText);
double pi = Math.PI;
double radius = Double.parseDouble(radiusEditText.getText().toString());
double finalRadius = radius * radius *pi;
answerEditText.setText(String.valueOf(finalRadius));
}
}
这是我的LogCat内容:
08-28 14:41:06.558: E/Trace(823): error opening trace file: No such file or directory (2)
08-28 14:41:09.876: D/gralloc_goldfish(823): Emulator without GPU emulation detected.
08-28 14:41:13.677: D/dalvikvm(823): GC_CONCURRENT freed 152K, 10% free 2613K/2896K, paused 5ms+6ms, total 507ms
08-28 14:41:13.677: I/Choreographer(823): Skipped 37 frames! The application may be doing too much work on its main thread.
08-28 14:41:23.655: I/Choreographer(823): Skipped 31 frames! The application may be doing too much work on its main thread.
08-28 14:41:30.986: D/AndroidRuntime(823): Shutting down VM
08-28 14:41:30.986: W/dalvikvm(823): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
08-28 14:41:31.035: E/AndroidRuntime(823): FATAL EXCEPTION: main
08-28 14:41:31.035: E/AndroidRuntime(823): java.lang.IllegalStateException: Could not find a method findarea(View) in the activity class com.turnapps.essentials.areacircle for onClick handler on view class android.widget.Button with id 'areaButton'
08-28 14:41:31.035: E/AndroidRuntime(823): at android.view.View$1.onClick(View.java:3586)
08-28 14:41:31.035: E/AndroidRuntime(823): at android.view.View.performClick(View.java:4204)
08-28 14:41:31.035: E/AndroidRuntime(823): at android.view.View$PerformClick.run(View.java:17355)
08-28 14:41:31.035: E/AndroidRuntime(823): at android.os.Handler.handleCallback(Handler.java:725)
08-28 14:41:31.035: E/AndroidRuntime(823): at android.os.Handler.dispatchMessage(Handler.java:92)
08-28 14:41:31.035: E/AndroidRuntime(823): at android.os.Looper.loop(Looper.java:137)
08-28 14:41:31.035: E/AndroidRuntime(823): at android.app.ActivityThread.main(ActivityThread.java:5041)
08-28 14:41:31.035: E/AndroidRuntime(823): at java.lang.reflect.Method.invokeNative(Native Method)
08-28 14:41:31.035: E/AndroidRuntime(823): at java.lang.reflect.Method.invoke(Method.java:511)
08-28 14:41:31.035: E/AndroidRuntime(823): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-28 14:41:31.035: E/AndroidRuntime(823): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
08-28 14:41:31.035: E/AndroidRuntime(823): at dalvik.system.NativeStart.main(Native Method)
08-28 14:41:31.035: E/AndroidRuntime(823): Caused by: java.lang.NoSuchMethodException: findarea [class android.view.View]
08-28 14:41:31.035: E/AndroidRuntime(823): at java.lang.Class.getConstructorOrMethod(Class.java:460)
08-28 14:41:31.035: E/AndroidRuntime(823): at java.lang.Class.getMethod(Class.java:915)
08-28 14:41:31.035: E/AndroidRuntime(823): at android.view.View$1.onClick(View.java:3579)
08-28 14:41:31.035: E/AndroidRuntime(823): ... 11 more
答案 0 :(得分:2)
您已为您声明了onClick="findarea"
属性按钮。正确的签名将视图作为参数。变化
public void findarea(){
与
public void findarea(View view){