안드로이드 개발 질문/답변
(글 수 45,052)
Insur_Adapter.java
public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null) { v = inflater.inflate(R.layout.insur_consul_list, parent, false); ImageView imagep = (ImageView) v.findViewById(R.id.image_per); ImageView imagec = (ImageView) v.findViewById(R.id.image_comp); TextView textn = (TextView) v.findViewById(R.id.text_name); imagep.setImageResource(arrData.get(position).getImage_per()); imagec.setImageResource(arrData.get(position).getImage_comp()); textn.setText(arrData.get(position).getText_name()); ImageButton call = (ImageButton) v.findViewById(R.id.consul_call); call.setTag(position); call.setOnClickListener(new OnClickListener() { public void onClick(View v) { int position = Integer.parseInt((v.getTag().toString())); Insur_Data p = arrData.get(position); if (p != null) { Intent i = new Intent(Intent.ACTION_DIAL, Uri .parse("tel:" + p.getText_call())); Consul_Adapter.this.context.startActivity(i); } } }); } return v; }
위는 Insur_Adapter.java 내용입니다.
아래 Insur_Data.java 에서 String t_call의 전화번호를 받아와서 전화거는 버튼을 만들고 있는데
버튼을 클릭하면 오류로 꺼져버립니다. ㅡㅜ
벌써 몇일째 해결방법을 찾고 있는데...
logcat 내용을 보니 29번줄이 문제라고 하는데 어디가 잘못 된건지 고수님들의 도움을 부탁드립니다.ㅡㅜ
Insur_Data.java 입니다.
public class Insur_Data { private int image_per; private int image_comp; private String text_name; private String text_call; private String text_mail; public Insur_Data(int i_per, int i_comp, String t_name, String t_call, String t_mail) { this.image_per = i_per; this.image_comp = i_comp; this.text_name = t_name; this.text_call = t_call; this.text_mail = t_mail; } public int getImage_per() { return image_per; } public int getImage_comp() { return image_comp; } public String getText_name() { return text_name; } public String getText_call() { return text_call; } public String getText_mail() { return text_mail; } }
리스트뷰의 데이터는 아래에 저장되어 있습니다.
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.insur_consul); // 리스트에 보여줄 데이터를 세팅한다. setData(); // 어댑터 생성 adapter = new Consul_Adapter(this, arrData); // 리스트뷰에 어댑터 연결 list = (ListView) findViewById(R.id.consul_list); list.setAdapter(adapter); private void setData() { arrData = new ArrayList<Insur_Data>(); arrData.add(new Insur_Data(R.drawable.c_01,R.drawable.i_01, "홍길동","0101234567","12@naver.com")); arrData.add(new Insur_Data(R.drawable.c_02,R.drawable.i_02, "김길동","0101234567","12@nate.com")); arrData.add(new Insur_Data(R.drawable.c_03,R.drawable.i_03, "이길동","0101234567","12@hanmail.net")); arrData.add(new Insur_Data(R.drawable.c_04, R.drawable.i_04, null,null,null)); arrData.add(new Insur_Data(R.drawable.c_04, R.drawable.i_04, null,null,null)); arrData.add(new Insur_Data(R.drawable.c_04, R.drawable.i_04, null,null,null)); arrData.add(new Insur_Data(R.drawable.c_04, R.drawable.i_04, null,null,null)); arrData.add(new Insur_Data(R.drawable.c_04, R.drawable.i_04, null,null,null)); } }