Nano Blog - 오병우

모바일 융합 기술 센터

스마트 앱 창작터 안드로이드 기초 및 실습 강의 자료

Day8Ex2MyList - MainActivity.java

 

import java.util.ArrayList;

import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity
       implements OnItemClickListener {

// protected String[] mArray = { "걸스데이", "에이핑크", "소녀시대", "시크릿",
//   "걸스데이", "에이핑크", "소녀시대", "시크릿",
//   "걸스데이", "에이핑크", "소녀시대", "시크릿",
//   "걸스데이", "에이핑크", "소녀시대", "시크릿" };
 ArrayList<IdolInfo> mArray = new ArrayList<IdolInfo>();
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  mArray.add(new IdolInfo("걸스데이", "썸씽"));
  mArray.add(new IdolInfo("에이핑크", "No No No"));
  mArray.add(new IdolInfo("소녀시대", "Gee"));
  mArray.add(new IdolInfo("시크릿", "매직"));
  mArray.add(new IdolInfo("걸스데이", "썸씽"));
  mArray.add(new IdolInfo("에이핑크", "No No No"));
  mArray.add(new IdolInfo("소녀시대", "Gee"));
  mArray.add(new IdolInfo("시크릿", "매직"));
  
  ListView list = (ListView)findViewById(R.id.listView);
//  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
//        android.R.layout.simple_list_item_1,
//        mArray);
  IdolAdapter adapter = new IdolAdapter(this,
    android.R.layout.simple_list_item_1);
  list.setAdapter(adapter);
  list.setOnItemClickListener(this);
 }

 @Override
 public void onItemClick(AdapterView<?> arg0, View arg1,
   int position,
   long arg3) {
//  Toast.makeText(this, "클릭: " + position + "(" + mArray[position] + ")",
//      Toast.LENGTH_SHORT).show();
  new AlertDialog.Builder(this)
  .setTitle("아이템 선택")
  .setMessage(mArray.get(position).getName() + " 아이템을 선택했습니다.")
  .setPositiveButton("확인", null)
  .show();
 }
 
 public class IdolInfo {
  protected String name;
  protected String song;
  
  public IdolInfo(String name, String song) {
   super();
   this.name = name;
   this.song = song;
  }

  public String getName() {
   return name;
  }

  public void setName(String name) {
   this.name = name;
  }

  public String getSong() {
   return song;
  }

  public void setSong(String song) {
   this.song = song;
  }
 }
 
 static class IdolViewHolder {
  TextView idolName;
 }
 
 public class IdolAdapter extends ArrayAdapter<IdolInfo> {

  protected LayoutInflater mInflater = null;
  
  public IdolAdapter(Context context, int resource) {
   super(context, resource);
   mInflater = LayoutInflater.from(context);
  }

  @Override
  public int getCount() {
   return mArray.size();
  }

  @Override
  public View getView(int position, View v, ViewGroup parent) {
   IdolViewHolder viewHolder;
   if (v == null) {
    v = mInflater.inflate(android.R.layout.simple_list_item_1,
         parent, false);
    
    viewHolder = new IdolViewHolder();
    viewHolder.idolName = (TextView)v.findViewById(android.R.id.text1);
    v.setTag(viewHolder);
   }
   else {
    viewHolder = (IdolViewHolder)v.getTag();
   }
   
   IdolInfo info = mArray.get(position);
   if (info != null) {
    viewHolder.idolName.setText(info.getName());
   }
   
   return v;
  }
 }
}