Android中网格视图中的问题

时间:2011-08-23 05:22:13

标签: android gridview

我正在练习本书的网格视图“Beginning android 2”,我输入了这个xml和java但程序在运行时在模拟器中崩溃。

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 :(得分: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); 
    } 

之前,您可以再次清理并构建