아래 getView의 코드 입니다.
현재 사진 이름 번호 아이콘1 아이콘2 <<의 형태로 커스텀리스트뷰를 만든다음
아이콘 1을 누르면 전화걸기 아이콘 2누르면 메일이 작성되게 하려고 하는데
현재 테스트 하기 위해 Toast로 메시지를 띄우게 만들어놓고 테스트를 하고 있습니다.
다만 아래와 같이 코드를 짜면 아이콘을 클릭해도 아이콘이 클릭 되지 않아 Toast로 작성해 놓은 몇번째 클전화 클릭이라는 메시지가 출력이 되지 않습니다... 어찌 해결을 하면 좋을까요..?
코드는 아래와 같이 작성한 상태이고 아이콘들은 ImagView로 만들었습니다.
public class MainActivity extends AppCompatActivity {
class SingerAdapter extends BaseAdapter {
ArrayList<SingerItem> items = new ArrayList<SingerItem>();
private View.OnClickListener mListener;
public SingerAdapter( View.OnClickListener listener ) {
super();
mListener = listener;
}
@Override
public int getCount() {
return items.size();
}
public void addItem(SingerItem item) {
items.add(item);
}
@Override
public Object getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup viewGroup) {
final int pos = position;
final Context context = viewGroup.getContext();
if(convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.singer_item, viewGroup, false);
}
SingerItemView view = new SingerItemView(getApplicationContext());
SingerItem item = items.get(position);
view.setName(item.getName());
view.setMobile(item.getMobile());
view.setImage(item.getResId());
view.setImageCall(item.getimageCall());
view.setImageEmail(item.getimgageMail());
ImageView ImageCall = (ImageView) convertView.findViewById(R.id.imageCall);
ImageCall.setOnClickListener(mListener);
return view;
}
}
EditText editText;
ListView listView;
SingerAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
adapter = new SingerAdapter();
adapter.addItem(new SingerItem("가", "010-1000-1000", "aaaa@aaaa.com", R.drawable.singer, R.drawable.call, R.drawable.email));
adapter.addItem(new SingerItem("나", "010-2000-2000", "bbbb@bbbb.com", R.drawable.singer, R.drawable.call, R.drawable.email));
adapter.addItem(new SingerItem("다", "010-3000-3000", "cccc@cccc.com", R.drawable.singer, R.drawable.call, R.drawable.email));
adapter.addItem(new SingerItem("라", "010-4000-4000", "dddd@dddd.com", R.drawable.singer, R.drawable.call, R.drawable.email));
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
SingerItem item = (SingerItem) adapter.getItem(position);
Toast.makeText(getApplicationContext(), "선택: " + item.getName(), Toast.LENGTH_SHORT).show();
}
});
}
}