setOnClickListener只包含一个包含许多其他视图的相对布局视图

时间:2012-01-02 13:49:07

标签: android android-layout

我有一个由几个自定义视图组成的相对布局,当我点击其中一个视图说“NavigationSelector”时,另一个视图说“AssistanceSelector”必须修改。我已经为NavigationSelector的对象添加了setOnClickListener事件,但是我发现在我点击整个相对布局的任何地方都会调用NavigationClickListener。

    <RelativeLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >

    <com.dashboard.customviews.NavigationSelector
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:id="@+id/navigationSelector">
    </com.dashboard.customviews.NavigationSelector>

    <com.dashboard.customviews.AssistanceSelector
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:id="@+id/assistanceSelector">
    </com.dashboard.customviews.AssistanceSelector> 

Activity.java:

   NavigationSelector objNavigationSelector=null;
   objNavigationSelector=(NavigationSelector)findViewById(R.id.navigationSelector);
   objNavigationSelector.setOnClickListener(new NavigationClickListener(this));

class NavigationClickListener implements OnClickListener

public void onClick(View v) {

        switch (v.getId()) {
        case R.id.navigationSelector: //do required stuff 
             break;
        ...
        }

2 个答案:

答案 0 :(得分:0)

将标记android:clickable="false"添加到您不想单击的布局项目中。

希望它有所帮助!

答案 1 :(得分:0)

我认为这是因为你的两个观点有着共同的立场。修复你的布局参数,都有android:layout_alignParentLeft="true"