2013-08-23 64 views
1

我在我的項目中使用了視圖切換器。如何在兩個佈局中使用具有相同編號的viewswitcher

在我的xml中,我創建了2個佈局和所有相同的Id。 切換我的視圖後,我無法切換到以前的視圖,因爲我在兩種佈局中使用相同的ID。

現在我怎樣才能在java代碼中使用一個監聽器在視圖切換器中進行佈局。 我不想創建另一個ID並創建另一個偵聽器來再次切換。

我的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> 

我的Java代碼如下

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

克里特島不同的ID在XML父相對佈局。

然後在java文件中檢查使用了哪個相對佈局按鈕。 使用方法

步驟1)

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

步驟2)

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

我該如何區分帶有2個不同ID的佈局的按鈕? 請給我一個例子。 – user2085965

+0

檢查我更新了我的答案 –

0

只是試圖改變烏爾文本中的任何按鈕或TextView的的。可能是烏爾視圖切換,但因爲代碼因爲這兩個佈局是完全相同的你無法區分。

相關問題