0

テキストビュー、グリッドビュー、および1つの戻るボタンを含む1つのxmlファイルをプロジェクトに実装しようとしていますが、ここにコードがあります:

<?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>

これは、上部に小さなテキスト、1 つの db テーブルのフィールドを表示するグリッド、およびグリッド内のスクロールを終了するためのボタンである必要があります。グリッドが読み込まれ、エントリが表示されますが、スクロールを動かして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 でエラーが発生していないため、このコードを変更しましたが、問題はこれ以上閉じていないためですが、これは db のエントリの一部を表示するだけで、すべてのエントリが表示されず、変更できません幅と高さで親を埋めるためのグリッドビュー、新しいエントリごとにサイズを大きくするためにグリッドを配置するにはどうすればよいですか?

UPDATE 1
MM-BB answer
logcat エラーで scrollview を削除すると:

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)
4

1 に答える 1

0

1-GridviewはscrollViewを必要としませんこれは、scrollviewでgridviewを使用するときにEclipseが表示する警告です

The vertically scrolling ScrollView should not contain another vertically scrolling widget (GridView)

2-にScrollView>変更</ScrollView>

于 2013-06-06T05:07:22.790 に答える