package com.C09_ListView;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class C09_ListViewActivity extends Activity {
/** Called when the activity is first created. */
ArrayList<MyItem> arr;
MyItem item;
MyItem_Sub adapter;
ListView list;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
item=new MyItem(R.id.imageView1,"삼성");
arr=new ArrayList<MyItem>();
arr.add(item);
adapter=new MyItem_Sub(this,R.layout.sub,arr);
list=(ListView)findViewById(R.id.listView1);
list.setAdapter(adapter);
}
class MyItem{
int icon;
String name;
MyItem(int aicon,String aname){
icon=aicon;
name=aname;
}
}
class MyItem_Sub extends BaseAdapter{
int layout;
Context context;
LayoutInflater inflater;
ArrayList<MyItem> item;
MyItem_Sub(Context con,int alayout,ArrayList<MyItem> aitem){
context=con;
layout=alayout;
item=aitem;
inflater=(LayoutInflater)con.getSystemService(LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
// TODO Auto-generated method stub
return item.size();
}
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return item.get(arg0).name;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final int pos=position;
if(convertView==null){
convertView=inflater.inflate(layout, parent, false);
}
ImageView img=(ImageView)findViewById(R.id.imageView1);
TextView txt=(TextView)findViewById(R.id.textView1);
img.setImageResource(item.get(position).icon);
txt.setText(item.get(position).name);
Button btn=(Button)findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String str=item.get(pos).name+"에 관심이 가요";
Toast.makeText(C09_ListViewActivity.this, str, Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
}
}
색깔 칠한 부분에서 에러가떠요...
고쳐주시면 감사하겠습니다.




item 이 객체는 array 가 아닌데요??
ArrayList는 arr 객체라고 되어 있는데 왜 item size를 찾아오고 객체를 얻어오고 그러나요??
상당히 잘 못 짜여 있네요.
하나 예만 들어 줄께요.
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return item.get(arg0).name;
}
이부분은
public Object getItem(int position) {
// TODO Auto-generated method stub
return arr.get(position);
}
이게 정상 입니다.