2016-07-07 52 views
0

我是Android編程的新手,現在我想爲2視圖創建一個ViewFlipper或ViewSwitcher,它將在1和2列之間切換視圖。問題是第一個視圖是可以的,但是當我使用showNext()或showPrevious()時,第二個視圖顯示爲空白,並且我已經完全不知道什麼是錯誤的。我曾嘗試使用ViewFlipper和ViewSwitcher獲得相同的結果。ViewFlipper/ViewSwitcher第二視圖清空

layout_devicelistmainswitcher.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 


<Button 
    android:layout_width="70dp" 
    android:layout_height="70dp" 
    android:contentDescription="Grid/List View" 
    android:id="@+id/viewbutton" 
    android:background="@drawable/viewicon" 
    android:layout_gravity="right" /> 

<ViewFlipper 
     android:id="@+id/vflipper" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

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

      <GridView 
       android:numColumns="1" 
       android:gravity="center" 
       android:columnWidth="100dp" 
       android:stretchMode="columnWidth" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:id="@+id/grid" 
       android:scrollbars="none" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="200dp" 
      android:layout_height="200dp"> 

      <GridView 
       android:numColumns="2" 
       android:gravity="center" 
       android:columnWidth="100dp" 
       android:stretchMode="columnWidth" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:id="@+id/grid_l" 
       android:scrollbars="none" /> 
     </LinearLayout> 

</ViewFlipper> 

mainactivity.java

public class activity_devicelist extends AppCompatActivity { 

GridView grid; 
Boolean viewtype = true; 
ViewFlipper switcher; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.layout_devicelistmainswitcher); 

    Button button = (Button) findViewById(R.id.viewbutton); 

    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(activity_devicelist.this, "Button Clicked", Toast.LENGTH_SHORT).show(); 
      switcher = (ViewFlipper) findViewById(R.id.vflipper); 
      switcher.showPrevious(); 
     } 
    }); 
} 

}

回答

0

把你findViewById出像下面的ñ它應該工作

switcher = (ViewFlipper) findViewById(R.id.vflipper); 

button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Toast.makeText(activity_devicelist.this, "Button Clicked", Toast.LENGTH_SHORT).show(); 

     switcher.showPrevious(); 
    } 
}); 
+0

試過,以前已經,但仍然一樣。剛剛再次嘗試,也一樣。 –

+0

@ZiaShams檢查你的gridview –

+0

謝謝Tarun,但是兩個GridView都是同樣的複製粘貼,除了列數,所以如果第一個GridView出現在切換器中,爲什麼不是第二個呢?另外我交換了第一個和第二個GridView,但是相同。 –