3

私の問題に対する答えが見つからないので、あなたの助けが必要です... 別のアクティビティを開始するためにクリック可能にしたい LinearLayout があります。だから私はそれに onClickListener を実装します。誰かがクリックすると背景が変わるように、この LinearLayout のセレクターを作成しました。

私はそれを理解していません:

  • LinearLayout の xml にandroid:clickable="true"がない場合、クリックして必要なものを取得できますが、セレクターは機能しません。
  • この行を削除すると、逆になります..セレクターは機能しますが、onClick イベントは機能しません。

それで、誰でも理由を説明できますか?念のため、セレクターファイルの内容は次のとおりです。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:drawable="@drawable/btn_restaurants_background_state_pressed" android:state_pressed="true"></item>
   <item android:drawable="@drawable/btn_restaurants_background_state_pressed" android:state_focused="true"></item>
   <item android:drawable="@drawable/btn_restaurants_background_state_pressed" android:state_selected="true"></item>
   <item android:drawable="@drawable/btn_restaurants_background_state_normal"></item>
</selector>

よろしくお願いします

4

1 に答える 1

0

onCreate メソッド内:

private LinearLayout llayout;
@Override
public void onCreate(Bundle savedInstance) {
   super.onCreate(savedInstance);
   llayout = (LinearLayout) findViewById(R.id.layout_name);
   llayout.setOnClickListener(this);

次に、アクティビティで onClick メソッドをオーバーライドし、

  @override
  public void onClick(View v) {

     switch(v.getId()) {

        case R.id.layout_name :
              // To change the background
              llayout.setBackgroundResource(R.drawable.image_name1);

             // To call AnotherActivity
             Intent in = new Intent(this, TargetActivityName.class);
             startActivity(in);
             break;
     }
  }
于 2012-10-21T05:28:34.587 に答える