인터넷의 예제를 보고 커스텀리스트뷰를 만들었는데 ..
일반 리스트뷰같은경우 OnItemClickListener에서
ArrayList.get(index); 리스트의 내용이 리턴되는데
커스텀리스트뷰같은경우 내용물이 많잖아요
이미지뷰도 있고 텍스트뷰도 있고 이런 내용은 어떻게 뽑나요 ??
제 소스코드는 다음과 같습니다.
package com.example.customlistviewtest;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
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.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
ListView listview;
DataAdapter adapter;
LayoutInflater mInflater;
ArrayList<CData> alist;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
alist = new ArrayList<CData>();
adapter = new DataAdapter(this,alist);
listview = (ListView) findViewById(R.id.list);
listview.setAdapter(adapter);
context = this;
adapter.add(new CData(this,"가나다","가나다", R.drawable.ic_launcher));
adapter.add(new CData(this,"123","123", R.drawable.ic_launcher));
adapter.add(new CData(this,"abc","abc", R.drawable.ic_launcher));
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
}
});
}
private class DataAdapter extends ArrayAdapter<CData> {
private LayoutInflater mInflater;
public DataAdapter(Context context, ArrayList<CData> object) {
super(context, 0, object);
mInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View v, ViewGroup parent) {
View view = null;
if (v == null) {
view = mInflater.inflate(R.layout.custom_view, null);
} else {
view = v;
}
final CData data = this.getItem(position);
if (data != null) {
TextView title = (TextView) view.findViewById(R.id.tv1);
TextView text = (TextView) view.findViewById(R.id.tv2);
ImageView img = (ImageView) view.findViewById(R.id.img);
title.setText(data.getTitle());
text.setText(data.getText());
img.setImageResource(data.getImg());
}
return view;
}
}
class CData {
private String mTitle;
private String mText;
private int mImg;
public CData(Context context, String pTitle, String pText, int pImg) {
mTitle = pTitle;
mText = pText;
mImg = pImg;
}
public String getTitle() {
return mTitle;
}
public String getText() {
return mText;
}
public int getImg() {
return mImg;
}
}
}