package com.commonsware.android.selection;

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.Button;
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);
  }
 }
}
-알짜만 골라 배우는 안드로이드 프로그래밍-

계속 질문하는 저도 참 슬픕니다. 자바기반이라 해서 졸작으로 선택을 했는데 으엉! 벌써부터 어렵습니다.

그래도 윗부분들은 계속 질문공세를 해서 조금이라도 알겠는데

 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);
  }
 }
}
이부분은 도저히 이해불능입니다. 혹시 주석 달아 주실분 계신가요?