2013-08-23 2 views
1

Я использую переключатель в моем проекте.Как использовать viewswitcher с одинаковыми идентификаторами в обоих макетах

В моем xml я создал 2 макета с одинаковыми идентификаторами. После того, как я переключу свое представление, я не могу переключиться на предыдущее представление, потому что я использую одинаковые идентификаторы в обеих макетах.

Теперь как я могу использовать один прослушиватель в Java-коде для обоих макетов в режиме просмотра. Я не хочу создавать другой идентификатор и создавать еще один прослушиватель для переключения снова.

Мой xml такой, как показано ниже.

<ViewSwitcher xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/profileSwitcher" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:text="@string/hello_world" /> 

    <Button 
     android:id="@+id/switchBtn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:text="Switch" /> 
</RelativeLayout> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:text="@string/hello_world" /> 

    <Button 
     android:id="@+id/switchBtn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:text="Switch" /> 
</RelativeLayout> 

</ViewSwitcher> 

Моего ява код выглядит следующим образом

final ViewSwitcher switcher = (ViewSwitcher) findViewById(R.id.profileSwitcher); 
    Button btn = (Button) findViewById(R.id.switchBtn); 
    btn.setOnClickListener(new OnClickListener() { 

     private boolean switchCheck; 

     public void onClick(View v) { 
      new AnimationUtils(); 
      switcher.setAnimation(AnimationUtils.makeInAnimation(getApplicationContext(), true)); 
      if (!switchCheck) { 
       switcher.showNext(); 
       switchCheck = true; 
      } else { 
       switcher.showPrevious(); 
       switchCheck = false; 
      } 
     } 
    }); 

Пожалуйста, помогите ..

ответ

0

Крита различных идентификаторов для родительского относительного расположения в XML.

И затем в файле java проверьте, какая кнопка относительной компоновки используется. с использованием метода

шаг 1)

RelativeLayout r1 = RelativeLayout findviewbyId(R.id.rl1) 
RelativeLayout r2 = RelativeLayout findviewbyId(R.id.rl2) 

Step2)

if button.getParent equals to R1 then ... 
else ..... 
+0

Как я могу различать кнопки с двумя разными идентификаторами макетов.? Просьба привести пример. – user2085965

+0

проверить я обновил свой ответ –

0

Просто попробуйте изменить ур текст в любой кнопки или TextView быть в письменном виде анкеты ур зрения переключения, но так как код для обоих макетов точно такой же ур не способен дифференцировать.

Смежные вопросы