Autore Topic: Utilizzo di una gridview  (Letto 400 volte)

Offline Vincenzoz

  • Utente junior
  • **
  • Post: 122
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    Vincenzo Cimino
  • Sistema operativo:
    Windows 7
Utilizzo di una gridview
« il: 29 Agosto 2013, 12:55:56 CEST »
0
Salve, volevo creare una GridView contenente dei bottoni con una textview, alla seguente maniera:

Codice (XML): [Seleziona]
 <GridView
       android:id="@+id/grid"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_alignLeft="@+id/textView1"
       android:layout_alignParentBottom="true"
       android:layout_below="@+id/textView1"
       android:numColumns="auto_fit" >

    </GridView>

Bottoni:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="@color/white"
   android:orientation="vertical" >

    <TextView
       android:id="@+id/testo_vista"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:padding="10dp"
       android:textAppearance="?android:attr/textAppearanceLarge"
       android:textColor="@color/white"
       android:textSize="16dp" >

    </TextView>

</LinearLayout>

Codice (Java): [Seleziona]
public class MainActivity extends Activity {
        private GridView mGridview;
        private ArrayAdapter<String> gridAdapter;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                mGridview = (GridView) findViewById(R.id.grid);
                Context ctx = getApplicationContext();
        Resources res = ctx.getResources();
       
        final String[] numeri = res.getStringArray(R.array.numeri);
       
        gridAdapter = new TestAdapter(ctx, R.layout.bottone, numeri);
       
        mGridview.setAdapter( gridAdapter );
        mGridview.setTextFilterEnabled(true);


        }
E l'adapter :
Codice (Java): [Seleziona]
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
 
public class TestImmagineAdapter extends ArrayAdapter<String> {
    private LayoutInflater mInflater;
 
    private String[] numeri;
 
    private int mIdRisorsaVista;
 
    public TestImmagineAdapter(Context ctx, int IdRisorsaVista, String[] strings) {
        super(ctx, IdRisorsaVista, strings);
        //per instanziare un file xml layout nel suo oggetto vista corrispondente
        mInflater = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 
        numeri = strings;
 
        mIdRisorsaVista = IdRisorsaVista;
    }
 
    @Override
    public int getCount() {
        return numeri.length;
    }
 
    @Override
    public String getItem(int position) {
        return numeri[position];
    }
 
    @Override
    public long getItemId(int position) {
        return 0;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        convertView = mInflater.inflate(mIdRisorsaVista, null);
 
        TextView tv = (TextView)convertView.findViewById(R.id.testo_vista);
        tv.setText(numeri[position]);
 
        return convertView;
    }
}

Ma il risultato ottenuto è questo:



Grazie mille in anticipo per l'aiuto  :D
« Ultima modifica: 30 Agosto 2013, 14:39:50 CEST da Vincenzoz »
Vincenzo Cimino @ Google Play Store