我'試圖在我的項目一個XML文件,該文件包含實現:一個TextView,GridView控件和一個返回按鈕,但這裏的代碼:如何使用使用網格視圖和滾動和按鈕進行
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:mask="http://schemas.android.com/apk/res/br.com.example.sgm"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/Black"
android:screenOrientation="portrait" >
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:layout_marginTop="10dp"
android:text="Código Data"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/LSGray" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="410dp"
android:onClick="bvoltar"
android:text=" Voltar "
android:textColor="@color/Snow" />
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="350dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<GridView
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="345dp"
android:numColumns="1" >
</GridView>
</LinearLayout>
ScrollView>
</RelativeLayout>
這應該在頂部是一個小文本,一個網格顯示一個數據庫表中的字段,一個按鈕退出,在網格內滾動......但是當我運行該項目並轉到此屏幕時,滾動不工作,網格加載和顯示entrys,但如果嘗試移動滾動這關閉我的apk,任何人都知道如何修復它?
這裏的適配器:
public class DataAdapter extends BaseAdapter
{
Context mContext;
//
// private String [] codigo = new String[100];
// private String [] data = new String[100];
private LayoutInflater mInflater;
public int cont;
public DataAdapter(Context c)
{
mContext=c;
mInflater = LayoutInflater.from(c);
}
public int getCount()
{
PersistenceHelper per = PersistenceHelper.getInstance(mContext);
List<Ocorrencia> lOco;
lOco = per.listarOcorrencia();
return lOco.size();
}
public Object getItem(int position)
{
return position;
}
public long getItemId(int position)
{
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder=null;
if(convertView==null)
{
convertView = mInflater.inflate(R.layout.customgrid,
parent,false);
holder = new ViewHolder();
holder.txtCodigo=(TextView)convertView.findViewById(R.id.txtCodigo);
holder.txtCodigo.setPadding(10, 10, 10 , 10);
holder.txtData=(TextView)convertView.findViewById(R.id.txtData);
holder.txtData.setPadding(10, 10, 10, 10);
if(position==0)
{
convertView.setTag(holder);
}
}
else
{
holder = (ViewHolder) convertView.getTag();
}
PersistenceHelper per = PersistenceHelper.getInstance(mContext);
List<Ocorrencia> lOco = per.listarOcorrencia();
setCont(lOco.size());
String [] codigo = new String[getCont()];
String [] data = new String[getCont()];
for(int x=0; x<getCont(); x++){
codigo[x] = lOco.get(x).getCodigo();
data[x] = lOco.get(x).getData();
}
holder.txtCodigo.setText(codigo[position]);
holder.txtData.setText(data[position]);
getCount();
return convertView;
}
static class ViewHolder
{
TextView txtCodigo;
TextView txtData;
}
public int getCont() {
return cont;
}
public void setCont(int cont) {
this.cont = cont;
}
}
,如果是必要的......
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TableLayout android:id="@+id/TableLayout01"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<TableRow
android:id="@+id/TableRow01"
android:layout_width="wrap_content"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/txtCodigo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Codigo"
android:textColor="@color/LSGray" />
<TextView
android:id="@+id/txtData"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text=" Data"
android:textColor="@color/Snow" />
</TableRow>
</TableLayout>
</LinearLayout>
不會對logcat的一個原因這個錯誤的代碼我有變化的東西,但問題是,因爲是不是更接近,但是,這只是從數據庫的entrys顯示一小塊,並沒有顯示所有的entrys,我不能改變gridview填充父寬度和高度,我怎麼可以把網格增加大小每個新的entrys ?
UPDATE 1
當我通過MM-BB答案刪除滾動型
logcat的錯誤:
06-06 05:14:17.287: E/AndroidRuntime(828): FATAL EXCEPTION: main
06-06 05:14:17.287: E/AndroidRuntime(828): java.lang.NullPointerException
06-06 05:14:17.287: E/AndroidRuntime(828): at com.example.sgm.DataAdapter.getView(DataAdapter.java:125)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.widget.AbsListView.obtainView(AbsListView.java:2255)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.widget.GridView.makeAndAddView(GridView.java:1331)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.widget.GridView.makeRow(GridView.java:331)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.widget.GridView.fillDown(GridView.java:283)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.widget.GridView.fillGap(GridView.java:243)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5040)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.widget.AbsListView.scrollIfNeeded(AbsListView.java:3197)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.widget.AbsListView.onTouchEvent(AbsListView.java:3471)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.view.View.dispatchTouchEvent(View.java:7127)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2170)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1905)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
06-06 05:14:17.287: E/AndroidRuntime(828): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
你可以爲你的gridview顯示你的adpater類嗎?並請發佈您的錯誤日誌。 –