2017-02-01 16 views
0

チェックボックスをオンにしたときにテキストフィールドのコンテキストを変更しようとしています。ボタンリスナーを実装するときにAndroidアプリがクラッシュする

TextViewとButtonはフラグメント内にあります。

のTextView:

<TextView 
      android:text="TextView" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/textView_test" /> 

ボタン:

<CheckBox android:id="@+id/checkBox_Alz" 
      android:text="Alzheimer's" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:onClick="onCheckBoxClicked" /> 

活動:

public void showConditionFragment() { 
    android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager(); 
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
    fragmentTransaction.replace(R.id.frame_content, new ConditionFragment()); 
    fragmentTransaction.commit(); 
} 

public static class ConditionFragment extends Fragment { 
    private final String LOG = this.getClass().getSimpleName(); 
    public ConditionFragment() { 
    } 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.condition_choice, container, false); 
     return view; 
    } 
    @Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
    } 

} 

リスナー:

public void onCheckBoxClicked(View view) { 
    TextView viewTest = (TextView)findViewById(R.id.textView_test); 
    viewTest.setText("test"); 
} 

一度ボックスを選択すると、アプリケーションが機能していないというエラーが表示されます。リスナーメソッドがコードなしで残っている場合、ボックスはエラーなしで選択されます。

EDIT:

エラーログ:あなたは間違っているのTextViewクラスの活動(com.rey.material.widget.TextView)をインポートしているよう

E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: com.phorloop.graymatters, PID: 14416 
        java.lang.IllegalStateException: Could not execute method for android:onClick 
         at android.view.View$DeclaredOnClickListener.onClick(View.java:4725) 
         at android.view.View.performClick(View.java:5637) 
         at android.widget.CompoundButton.performClick(CompoundButton.java:122) 
         at android.view.View$PerformClick.run(View.java:22429) 
         at android.os.Handler.handleCallback(Handler.java:751) 
         at android.os.Handler.dispatchMessage(Handler.java:95) 
         at android.os.Looper.loop(Looper.java:154) 
         at android.app.ActivityThread.main(ActivityThread.java:6119) 
         at java.lang.reflect.Method.invoke(Native Method) 
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 
        Caused by: java.lang.reflect.InvocationTargetException 
         at java.lang.reflect.Method.invoke(Native Method) 
         at android.view.View$DeclaredOnClickListener.onClick(View.java:4720) 
         at android.view.View.performClick(View.java:5637)  
         at android.widget.CompoundButton.performClick(CompoundButton.java:122)  
         at android.view.View$PerformClick.run(View.java:22429)  
         at android.os.Handler.handleCallback(Handler.java:751)  
         at android.os.Handler.dispatchMessage(Handler.java:95)  
         at android.os.Looper.loop(Looper.java:154)  
         at android.app.ActivityThread.main(ActivityThread.java:6119)  
         at java.lang.reflect.Method.invoke(Native Method)  
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)  
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)  
        Caused by: java.lang.ClassCastException: android.support.v7.widget.AppCompatTextView cannot be cast to com.rey.material.widget.TextView 
         at com.phorloop.graymatters.view.activity.WelcomeActivity.onCheckBoxClicked(WelcomeActivity.java:180) 
         at java.lang.reflect.Method.invoke(Native Method)  
         at android.view.View$DeclaredOnClickListener.onClick(View.java:4720)  
         at android.view.View.performClick(View.java:5637)  
         at android.widget.CompoundButton.performClick(CompoundButton.java:122)  
         at android.view.View$PerformClick.run(View.java:22429)  
         at android.os.Handler.handleCallback(Handler.java:751)  
         at android.os.Handler.dispatchMessage(Handler.java:95)  
         at android.os.Looper.loop(Looper.java:154)  
         at android.app.ActivityThread.main(ActivityThread.java:6119)  
         at java.lang.reflect.Method.invoke(Native Method)  
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)  
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)  
+0

を使用してandroid.support.v7.widget.AppCompatTextViewをインポートしようとすると、エラーログを投稿してください。チェックボックスはフラグメントまたはアクティビティレイアウトにありますか? –

+0

これはあなたが心配すべきことです - "java.lang.ClassCastException:android.support.v7.widget.AppCompatTextViewはcom.rey.material.widget.TextViewにキャストできません"。ここでカスタムTextViewクラスを期待していない場合は、インポートをチェックし、それに応じて調整してください。 – Amit

答えて

0

が見えます。

public void onCheckBoxClicked(View view) { 
    AppCompatTextView viewTest = (AppCompatTextView)findViewById(R.id.textView_test); 
    viewTest.setText("test"); 
} 
関連する問題