2016-07-07 12 views
0

저는 Android 프로그래밍에 초보자입니다. 이제 ViewFlipper 또는 ViewSwitcher를 2 개의보기로 만들고 싶습니다.이 뷰는 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를 꺼내의 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가 스위처에 나타나면 두 번째 이유는 무엇입니까? 또한 첫 번째와 두 번째 GridViews를 바꿨지 만 동일합니다. –