2016-07-07 10 views
0

私はAndroidプログラミングの初心者です。今では、ViewFlipperまたはViewSwitcherを2つのビューに作成して、1と2の間のビューを切り替えます。問題は、最初のビューは正常ですが、showNext()またはshowPrevious()を使用すると、2番目のビューは空白として表示され、何が間違っているかを完全に気にしなくなりました。私は同じ結果をViewFlipperとViewSwitcherを試してみました。ViewFlipper/ViewSwitcher 2番目のビューを空にします

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を交換しましたが、同じです。 –

関連する問題