2017-07-04 10 views
2

私はカスタムビューを作成し、onClickを設定しますが、動作しません。それはエラーIllegalStateException: Could not find a methodを介して私はデフォルトビューで試してみるとこれはうまくいきます。onclickがカスタムビューで動作していません。

<com.package.name.CircularTextView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_margin="2dp" 
       android:onClick="colorClicked" 
       android:tag="#ffaacc" 
       app:solidColor="#ffaacc" /> 

      <TextView 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_margin="2dp" 
       android:onClick="colorClicked" 
       android:text="adhaksjd asdas kd" /> 

カスタムビューの場合MainActivity

public void colorClicked(View view) { 
    Log.i(TAG, "color clicked..."); 
    /*fragCameraDrawing = (Drawing) getFragmentManager().findFragmentByTag("cameraDrawing"); 
    fragmentCommunicator = (FragmentCommunicator) fragCameraDrawing; 
    fragmentCommunicator.passingView(view);*/ 
} 

これは動作しますが、デフォルトでそれが表示されていません。何が間違っているのか教えてください。

答えて

1

setOnclickListenerをカスタム表示で使用してください。

このようにします。

class CircularTextView extends view implement view.OnClickListener{ 
    //other code 
    // inside constructor 
     this.setOnClickListener(this); 
public void onClick(View v){ 
     Log.i(TAG, "color clicked..."); 
} 
} 
3
android:onClick="colorClicked" 

これは、onClickListenerを使用する代わりにフラグメントに追加した場合や、Click to the Activityにこれを追加した場合は機能しません。

+0

これが成功した場合、回答を受け入れます。 –

+0

この解決策の冒頭では、カスタムビューの付属チュートリアルのonClickListenerを説明しているポイント8を参照してください:http://hmkcode.com/android-simple-custom-view/ – BusinessPlanQuickBuilder

+0

@Sinistro私のコードを見ると、 'onClick'を' MainActivity'はフラグメントにありません。これはデフォルトの 'TextView'でうまく動作しています – PakDeveloper

関連する問題