2011-08-23 4 views
0

Je suis en train de pratiquer la vue de grille à partir du livre "Beginning android 2", j'ai tapé ce xml et java mais le programme plante pendant l'exécution en émulateur.Problème dans la vue grille dans Android

Le main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <TextView 
    android:id="@+id/selection" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    /> 
    <GridView 
    android:id="@+id/grid" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:verticalSpacing="35px" 
    android:horizontalSpacing="5px" 
    android:numColumns="auto_fit" 
    android:columnWidth="100px" 
    android:stretchMode="columnWidth" 
    android:gravity="center" 
    /> 
</LinearLayout> 

Et le code java

package practise.dewsworld.android; 

import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.GridView; 
import android.widget.TextView; 

public class GridDemo extends Activity 
    implements AdapterView.OnItemSelectedListener { 
    TextView selection; 
    String[] items={"lorem", "ipsum", "dolor", "sit", "amet", 
      "consectetuer", "adipiscing", "elit", "morbi", "vel", 
      "ligula", "vitae", "arcu", "aliquet", "mollis", 
      "etiam", "vel", "erat", "placerat", "ante", 
      "porttitor", "sodales", "pellentesque", "augue", "purus"}; 

    @Override 
    public void onCreate(Bundle icicle) { 

     super.onCreate(icicle); 
     setContentView(R.layout.main); 
     selection=(TextView)findViewById(R.id.selection); 

     GridView g=(GridView) findViewById(R.id.grid); 
     g.setAdapter(new FunnyLookingAdapter(this, 
          android.R.layout.simple_list_item_1, 
          items)); 
     g.setOnItemSelectedListener(this); 
     } 

     public void onItemSelected(AdapterView<?> parent, View v, 
           int position, long id) { 
     selection.setText(items[position]); 
     } 

     public void onNothingSelected(AdapterView<?> parent) { 
     selection.setText(""); 
     } 

     private class FunnyLookingAdapter extends ArrayAdapter { 
     Context ctxt; 

     FunnyLookingAdapter(Context ctxt, int resource, 
          String[] items) { 
      super(ctxt, resource, items); 

      this.ctxt=ctxt; 
     } 

     public View getView(int position, View convertView, 
       ViewGroup parent) { 
      TextView label=(TextView)convertView; 

      if (convertView==null) { 
       convertView=new TextView(ctxt); 
       label=(TextView)convertView; 
      } 

      label.setText(items[position]); 

      return(convertView); 
     } 
     } 
} 

Maintenant pourriez-vous, quelqu'un s'il vous plaît me aider?

+1

Montrez quelle erreur vous obtenez, afin que nous puissions avoir une idée de cela. –

+0

postez votre erreur logcat aussi –

+0

Il n'y a pas de problème dans le code ci-dessus, veuillez également afficher (+ log) le fichier manifeste. –

Répondre

0

essayez ceci.

public View getView(int position, View convertView, ViewGroup parent) {    
     if (convertView==null) { 
      convertView=new TextView(ctxt);    
     } 
     final TextView label=(TextView)convertView; 
     label.setText(items[position]); 

     return(convertView); 
    } 

avant cela, vous pouvez juste propre et construire à nouveau.

Questions connexes