我想在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行,但它给了我这个结果
任何想法或帮助都可以 非常感谢你们
答案 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