每个子项GridView Android超过3项

时间:2016-09-26 03:37:51

标签: android android-studio

我想在gridview中显示来自内容提供商的数据超过3个子项或行

这是我的java源代码

@Override
public void onLoadFinished(Loader<Cursor> arg0, Cursor cursor) {

    players.clear();
    // First Check if cursor is not null
    if(cursor != null ) {


        StringBuilder result = new StringBuilder();

        // Now loop to all items and append it to string builder
             while (cursor.moveToNext()) {

                String id = cursor.getString(cursor.getColumnIndex("ID"));
                String name = cursor.getString(cursor.getColumnIndex("ITEM_NAME"));
                String qty = cursor.getString(cursor.getColumnIndex("QUANTITY"));
                String inst = cursor.getString(cursor.getColumnIndex("INSTRUCTION"));
                String pid = cursor.getString(cursor.getColumnIndex("POS_ID"));

                players.add("Items :" + name + "\n" + "Qty :" + qty + "\n" +
                             "Details :" + inst + "\n" + " Pos ID :" + pid);


                gv.setAdapter(adapter);
                resultView.setText(result);
            }

    } else {
        // If cursor is null then display toast amd set empty data.
        resultView.setText("Empty data");
        Toast.makeText(MainActivity.this, "May be there is no app  corresponding to your provider or there is null data.",
                        Toast.LENGTH_LONG).show();
    }

}

gv.setAdapter(适配器)是我显示来自内容提供商的数据

的地方

这是我的xml源代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:fillViewport="true"
tools:context="com.condorpos.kitchen_bumpbar.MainActivity">

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="5dp">

<Button
    android:id="@+id/btnRetrieve"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:padding="5dp"
    android:text="@string/show_data" />

    <TextView
        android:id="@+id/result"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:clickable="false"
        android:padding="5dp"
        android:textColor="#000000"
        android:textSize="15sp" />

    <GridView
        android:layout_width="match_parent"
        android:layout_height="420dp"
        android:numColumns="5"
        android:verticalSpacing="140dp"
        android:id="@+id/gridView1"/>

        <android.support.v7.widget.RecyclerView
            android:id="@+id/expListView"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:visibility="invisible" />

        <TextView
            android:id="@+id/empty_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:visibility="gone"
            android:text="@string/empty_list"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"/>

   </LinearLayout>
</LinearLayout>

gridView1等于java源代码上的gv我声明它就像

Griview gv;

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

从下面的图片中可以看出数据没有完全显示每列,我想显示超过3行,但它给了我这个结果

Displayed data

任何想法或帮助都可以 非常感谢你们

1 个答案:

答案 0 :(得分:2)

您需要将 try { int n = gridPrchaseOrder.Rows.Add(); gridPrchaseOrder.Rows[n].Cells[0].Value = customDropDown.grdItmName; gridPrchaseOrder.Rows[n].Cells[1].Value = customDropDown.grdItmDisrption; gridPrchaseOrder.Rows[n].Cells[2].Value = customDropDown.grdItmCata; gridPrchaseOrder.Rows[n].Cells[3].Value = customDropDown.grdItmPrice; customDropDown.Focus(); } catch (Exception ex) { MessageBox.Show(ex.Message); } 的高度设为GridView(根据您的布局),不要修改尺寸420dp