OnClickListener onClick = true和selector

时间:2012-10-20 22:53:52

标签: java android onclick onclicklistener

我的问题没有找到任何答案,所以我需要你的帮助...... 我有一个LinearLayout,我希望它可以点击,以便午餐另一个活动。所以我实现了一个onClickListener。 我为这个LinearLayout创建了一个选择器,以便当有人点击它时,背景会改变。

我只是不明白:

  • 如果我的LinearLayout在xml中没有 android:clickable =“true”,我可以点击它并得到我想要的但选择器不起作用。< / LI>
  • 如果我删除此行,则相反..选择器工作但不是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>

提前谢谢你

1 个答案:

答案 0 :(得分: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;
     }
  }