2011-08-23 3 views
0

저는 "Beginning android 2"라는 책에서 그리드 뷰를 연습하고 있는데,이 XML과 자바를 입력했지만 에뮬레이터에서 런타임 중에 프로그램이 중단됩니다.안드로이드의 그리드 뷰에서 문제가 발생했습니다

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> 

그리고 자바 코드

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

위의 코드에서 문제가 없으므로 Manifest 파일도 표시하십시오 (+ 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); 
    } 
그 전에

, 수 방금 깨끗하고 다시을 구축 할 수 있습니다.

관련 문제