Android gridview中的片段显示什么都没有

时间:2015-01-16 05:01:25

标签: android gridview fragment

我正在创建一个gridview,其中包含来自包含片段中的图像和文本的类的不同图像和文本。 GridView位于TabHost中。 TabHost工作正常。我可以在同一视图中看到其他按钮。但GridView内部没有任何内容。这是代码:

public class MenuPage extends Fragment{
GridView CategoryGridview;
View MainMenuView, HomePageView, GalleryView;

@Override
public void onAttach(Activity activity) {
    // TODO Auto-generated method stub
    super.onAttach(activity);
}

@Override
public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    final Context context = getActivity();
    this.MainMenuView = inflater.inflate(R.layout.mainmenupage, container, false);
    this.GalleryView = inflater.inflate(R.layout.gallery, container, false);

    this.CategoryGridview = (GridView)GalleryView.findViewById(R.id.gridViewGallery);
        CategoryGridview.setAdapter(new GalleryAdapter(getActivity())); 
:
:
:

    return MainMenuView;
}

适配器:

public class GalleryAdapter extends BaseAdapter{
ArrayList<Gallery> list;
Context context;

GalleryAdapter(Context context){
    this.context = context;
    list = new ArrayList<Gallery>();
    int[] TempGalleryId = {R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.g, R.drawable.h, R.drawable.i, R.drawable.j, R.drawable.k, R.drawable.l, R.drawable.m, R.drawable.n, R.drawable.o, R.drawable.p, R.drawable.q, R.drawable.r, R.drawable.s};
    String[] TempGalleryName = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s"};

    for (int i = 0; i < 19; i++){
        Gallery TempGallery = new Gallery(TempGalleryId[i], TempGalleryName[i]);
        list.add(TempGallery);
    }
}
@Override
public int getCount() {
    // TODO Auto-generated method stub
    return list.size();
}

@Override
public Object getItem(int position) {
    // TODO Auto-generated method stub
    return list.get(position);
}

@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View row = convertView;
    ViewHolder holder = null;
    if(row == null){
        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = inflater.inflate(R.layout.single_gallery, parent, false);
        holder = new ViewHolder(row);
        row.setTag(holder);
        }
    else{
        holder = (ViewHolder) row.getTag();
    }
    Gallery temp = list.get(position);
    holder.imageViewGallery.setImageResource(temp.GalleryId);
    return row;
}
}
class ViewHolder{
ImageView imageViewGallery;
ViewHolder(View v)
{
    imageViewGallery = (ImageView) v.findViewById(R.id.imageViewGallery);
}
}

class Gallery{
int GalleryId;
String GalleryName;

Gallery(int GalleryId, String GalleryName){
    this.GalleryId = GalleryId;
    this.GalleryName = GalleryName;
}

}

在mainmenupage.xml中,其中一个选项卡包含带有gridview imageViewGallery的动画的gallery.xml文件以及其中的一些按钮。

            <LinearLayout
                android:orientation="vertical"
                android:id="@+id/tab2"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >

                <ListView
                    android:id="@+id/DinnerList"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" >
                </ListView>
                <include
                    android:id="@+id/gallery"
                    layout="@layout/gallery" />
            </LinearLayout>

SingleGallery.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageViewGallery"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/a" />

</RelativeLayout>

这是Gallery.xml

    <RelativeLayout
        android:id="@+id/RelativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <Button
            android:id="@+id/btnBack"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:text="Back" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/button1"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_toRightOf="@+id/button1"
            android:text="Medium Text"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <GridView
            android:id="@+id/gridViewGallery"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/btnBack"
            android:numColumns="auto_fit" 
            android:horizontalSpacing="15dp"
            android:verticalSpacing="15dp"
            android:stretchMode="spacingWidthUniform">
        </GridView>

    </RelativeLayout>

我尝试过更改

CategoryGridview.setAdapter(new GalleryAdapter(getActivity())); 

CategoryGridview.setAdapter(new GalleryAdapter(context)); 

this.CategoryGridview = GridView)MainMenuView.findViewById(R.id.gridViewGallery);

this.CategoryGridview = (GridView)GalleryView.findViewById(R.id.gridViewGallery);

仍然无法运作。

我还尝试使用扩展Activity(){}打开一个新项目。

可以正常使用
CategoryGridview.setAdapter(new GalleryAdapter(this)); 

所以我猜问题就在别的地方。有人可以帮忙吗?

0 个答案:

没有答案