Как создать и добавить gridview во время выполнения в Android с использованием Java? - PullRequest
0 голосов
/ 26 марта 2012

здесь я создал gridView gridView1 в XML и отображаю в нем статические данные.

Q.1 Возможно ли создать и добавить gridview во время выполнения в мое andoid-приложение, возможно, в режиме прокрутки или в линейном макете?

Q.2 Как изменить размер шрифта данных, отображаемых в виде сетки?

Пожалуйста, помогите

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 голосов
/ 28 марта 2012

Вы бы объявили свой макет 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>

Вы хотите заменить FrameLayout из вышеприведенного макета на myfragment.xml (например):

<?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 класс ... столько, сколько вы можете просто Google на как использовать фрагменты .

Но фактически вам нужно создать класс GridViewFragment (например), который расширяетFragment.

...