如何使用java在android中运行时生成和添加gridview?

时间:2012-03-26 06:35:30

标签: java android android-layout android-gridview

这里我在xml中创建了gridview gridView1并在其中显示静态数据。

Q.1 是否可以在运行时生成gridview并将其添加到我的andoid应用程序中,可能是滚动浏览或线性布局?

Q.2 如何更改gridview中显示的数据的字体大小?

请帮忙

String[] mydata = new String[] { 
                    "Name", "Phone", 
                    "Mangesh", "63737377", 
                    "Rajnish", "63737344", 
                    "Disha", "63737399",
                    "Ashwin", "63737312"};

          gridView = (GridView) findViewById(R.id.gridView1);

          ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , mydata);

由于

1 个答案:

答案 0 :(得分:0)

您将声明布局mylayout.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainBack"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/transparent" >

    <FrameLayout
        android:id="@+id/gridViewFrag"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</RelativeLayout>

您想要使用myfragment.xml(例如)替换上述布局中的FrameLayout

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:numColumns="auto_fit"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:columnWidth="90dp"
    android:stretchMode="columnWidth"
    android:gravity="center"
/>

然后在你的代码中,在适当的位置调用一个方法来交换FrameLayout并将其替换为你的GridView(不确定你是否可以在其他地方使用它)

private void attachGridViewFragment(int headerFrag) {
    FragmentManager fragMgr = getSupportFragmentManager();
    FragmentTransaction xact = fragMgr.beginTransaction();
    try {
        if (findViewById(headerFrag) != null) {
            Resources res = getResources();
            String title = res.getString(R.string.app_icon_name);
            xact.replace(headerFrag, new GridViewFragment(title, true, true), HEADER_FRAGMENT_TAG).commitAllowingStateLoss();
        }
    } catch (NotFoundException e) {
        // TODO Auto-generated catch block
        Log.e("MyActivityName", e.getMessage());
    }
}

您当然必须撰写GridViewFragment课程......您可以在how to use fragments上使用Google。

但实际上你必须创建一个扩展GridViewFragment的类Fragment(例如)。