2011-08-23 22 views
0

私は本の "Beginning android 2"のグリッドビューを練習していますが、このxmlとjavaをタイプしましたが、エミュレータではランタイム中にプログラムがクラッシュします。Androidのグリッドビューでの問題

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> 

と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); 
     } 
     } 
} 

今、あなたは、誰も私を助けてくださいだろうか?

+1

エラーが表示されているので、私たちはそこからアイデアを得ることができます。 –

+0

あなたのlogcatエラーも投稿してください –

+0

上記のコードに問題はありません。マニフェストファイルも表示(+ log)してください。 –

答えて

0

これを試してください。その前に

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); 
    } 

、あなただけ清潔で再びを構築することができます。