안드로이드 개발 질문/답변
(글 수 45,052)
public class ListIconText extends Activity { ArrayList<MyItem> arItem; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.widget_listtest);
arItem = new ArrayList<MyItem>(); MyItem mi; mi = new MyItem(R.drawable.icon, "삼성 노트북");arItem.add(mi); mi = new MyItem(R.drawable.icon, "LG 세탁기");arItem.add(mi); mi = new MyItem(R.drawable.icon, "대우 마티즈");arItem.add(mi);
MyListAdapter MyAdapter = new MyListAdapter(this, R.layout.widget_icontext, arItem);
ListView MyList; MyList=(ListView)findViewById(R.id.list); MyList.setAdapter(MyAdapter); } }
//리스트 뷰에 출력할 항목 class MyItem { MyItem(int aIcon, String aName) { Icon = aIcon; Name = aName; } int Icon; String Name; }
//어댑터 클래스 class MyListAdapter extends BaseAdapter { Context maincon; LayoutInflater Inflater; ArrayList<MyItem> arSrc; int layout;
public MyListAdapter(Context context, int alayout, ArrayList<MyItem> aarSrc) { maincon = context; Inflater = (LayoutInflater)context.getSystemService( Context.LAYOUT_INFLATER_SERVICE); arSrc = aarSrc; layout = alayout; }
public int getCount() { return arSrc.size(); }
public String getItem(int position) { return arSrc.get(position).Name; }
public long getItemId(int position) { return position; }
// 각 항목의 뷰 생성 public View getView(int position, View convertView, ViewGroup parent) { final int pos = position; if (convertView == null) { convertView = Inflater.inflate(layout, parent, false); } ImageView img = (ImageView)convertView.findViewById(R.id.img); img.setImageResource(arSrc.get(position).Icon);
TextView txt = (TextView)convertView.findViewById(R.id.text); txt.setText(arSrc.get(position).Name);
Button btn = (Button)convertView.findViewById(R.id.btn); btn.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { String str = arSrc.get(pos).Name + "를 주문합니다."; Toast.makeText(maincon, str, Toast.LENGTH_SHORT).show(); } });
return convertView; } }
이러한 예제를 이용해서 리스트를 구현하였는데요.
여기에 setonItemselectedListener를 이용해서 항목 클릭시 이벤트를 발생시키는데
전혀 발생이 안되네요..;
list.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
Toast.makeText(ListIconText.this, ""+arg2, Toast.LENGTH_LONG);
} @Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
setonitemclicklistener도 사용해 봤구요..;;
뭐가 문제인가요?