2013-08-28 151 views
0

嘿我試圖做到這一點,一旦我點擊一個按鈕,它會計算一些東西,然後將EditText更改爲答案。當我點擊按鈕時,程序崩潰了!請幫助我,因爲我是Android新手。程序崩潰點擊一個按鈕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 

回答

2

聲明該onClick="findarea" propertis您的按鈕。正確的簽名將視圖作爲參數。更改

public void findarea(){ 

public void findarea(View view){ 
+0

謝謝你,它的工作!但是,你能向我解釋一下「觀點」的真正含義嗎? –

+0

這是android術語中的一個可視化組件。嘗試閱讀一些教程。這是基本的東西。 – schlingel

+0

該視圖是視圖類的一部分,您點擊了該視圖。 – Blackbelt