2016-07-07 2 views
0

Я новичок в программировании на Android, и теперь я хочу создать ViewFlipper или ViewSwitcher для 2 просмотров, которые будут переключаться между 1 и 2 столбцами. Проблема в том, что первое представление в порядке, но когда я использую showNext() или showPrevious(), второе представление отображается как пустое, и я совершенно не в духе думал о том, что не так. Я пробовал ViewFlipper и ViewSwitcher с теми же результатами.ViewFlipper/ViewSwitcher 2nd View Empty

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, словно ниже, n Должно работать

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, почему бы не второй? Также я заменил 1-й и 2-й GridViews, но то же самое. –