2017-08-26 7 views
0

ボタンを押すとアプリケーションがクラッシュします。それぞれの変換「国名」機能はボタンです。コメントにエラーを掲載します。前もって感謝します。実行時間通貨コンバータアンドロイドアプリの致命的なエラー

public class MainActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    public void convertIndia(View view){ convert(64.7,"Rupees"); } 
    public void convertEurope(View view){ convert(0.85,"Euros"); } 
    public void convertBritish(View view){ convert(0.78,"Pounds"); } 
    public void convertUae(View view) { convert(3.67,"Dhiram"); } 
    public void convertCanada(View view){ convert(1.26,"Ca Dollors"); }  
    public void convertAustralia(View view) { convert(1.26,"Aus Dollors"); } 

    public void convert(double other,String country){ 

     EditText editText = (EditText) findViewById(R.id.value); 
     Double usdValue = Double.parseDouble(editText.getText().toString()); 

     Log.i("USDVAL",usdValue.toString()); 
     Log.i("EDITTEXT",editText.toString()); 

     Double finalvalue = usdValue * other; 

     Toast.makeText(MainActivity.this, String.format("%.2f", finalvalue) + " " + country, Toast.LENGTH_LONG).show(); 
    } 
} 

エラーログ

8月26日12:04:46.140 2387から2387/com.fellowwebster.currencyconverter E/AndroidRuntime:致命的な例外:メイン プロセス:com.fellowwebster.currencyconverter、PID:2387 java.lang.IllegalStateException:android.support.v7.app.AppCompatViewInflater $のDeclaredOnClickListener.onClick(appCompatViewInflater.java:293) のメソッドを実行できませんでした。android.view.View.performClick(View.java)の :5637) android.view.Viewで$ PerformClick.run(View.java:22429) とandroid.os.Handler.handleCallback(Handler.java:751) とandroid.os.Handler.dispatchMessage(Handler.java:95) android.os.Looper.loop(Looper.java:154) android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(ネイティブメソッド) at com。 (ZygoteInit.java:776) によって引き起こされるa $ java.lang.reflect.Method.invoke(ネイティブメソッド) android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) android.view.View.performClick(View.java: (Handler.java:751) (android.os.Handler.dispatchMessage(Handler.java:22429)) (Handler.java:751) (Handler.java:22429) のアンドロイド。ビュー。ビュー$ PerformClick.run 9535) android.os.Looper.loop(Looper.java:154) とandroid.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(ネイティブメソッド) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) (com.android.internal.os.ZygoteInit.main)(ZygoteInit.java:776) 原因:java.lang.NullPointerException :ヌルオブジェクト参照で仮想メソッド 'android.text.Editable android.widget.EditText.getText()'を呼び出そうとしました at com.fellowwebster.currencyconverter.MainActivity.convert(MainActivity.java:38) at com.fellowwebster .Currencyconverter.MainActivity.convertIndia(MainActivity.java:18) at java.lang.reflect.Method.invoke(ネイティブメソッド) android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) でandroid.view.View.performClick(View.java:5637) android.view.View $ PerformClick.run(View.java:22429) (android.os.Handler.handleCallback(Handler.java:751))にあります。 android.app.ActivityThread.mainでandroid.os.Looper.loop(Looper.java:154) でandroid.os.Handler.dispatchMessage(Handler.java:95) (ActivityThread.java:6119) ででjava.lang.reflect.Method。com.android.internal.os.ZygoteInit.mainでcom.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) で を(ネイティブメソッド)を呼び出す(ZygoteInit.java:776)

Xml

<Button 
    android:id="@+id/india" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/british" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_below="@+id/value" 
    android:layout_toStartOf="@+id/british" 
    android:onClick="convertIndia" 
    android:text="IND_Rupee" 
    tools:layout_editor_absoluteX="131dp" 
    tools:layout_editor_absoluteY="70dp" /> 
+0

E/AndroidRuntimeを行ってもいいですこの:致命的な例外:メイン プロセス:com.fellowwebster.currencyconverter、PID:2387 java.lang.IllegalStateException: android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) – Dhanasekar

+0

あなたのXMLコードを共有してください@Dhanasekar –

+0

あなたの質問は完全なstを提供するように[編集]してくださいack trace。 –

答えて

0

android:onClickではなくonClickListenerを試す必要があります。 例:

Button button = (Button) findViewById(R.id.yourButtonId); 
button.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     callYourMethodHere(); 
    } 
}); 

場所のonCreate内側とあなたが

+0

これは問題ではありません。 'onClick'メソッドが見つからなかった場合、例外メッセージは異なるでしょう。 –

関連する問題