밑에는 소스 입니다.
각각의 버튼 클릭시 전화걸기 다이얼로그를 띠울려고하는데...
밑에 performDial()부분에서 에러가 나네요.!!
그 함수 안에 p.getNumber()에서 버그가 나는데 이유를 잘 모르겠네요.ㅠㅠ
생각해본다고 생각하는데...아직 버그 이유를 찾지를 못해서요.!!
아시는 분 있으면 알려주세요.!!
감사합니다.
package com.ListExample;
import java.util.ArrayList;
import com.ListExample.ListExample;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;
public class ListExample extends ListActivity{
// ListActivity를 상속받습니다.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ArrayList<Person> m_orders = new ArrayList<Person>();
Person p1 = new Person("안드로이드", "011-123-4567"); // 리스트에 추가할 객체입니다.
Person p2 = new Person("구글", "02-123-4567"); // 리스트에 추가할 객체입니다.
m_orders.add(p1); // 리스트에 객체를 추가합니다.
m_orders.add(p2); // 리스트에 객체를 추가합니다.
PersonAdapter m_adapter = new PersonAdapter(this, R.layout.row, m_orders); // 어댑터를 생성합니다.
setListAdapter(m_adapter); //
}
public void performDial() {
//if (p != null) {
// try {
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:"
+ p.getNumber())));
// } catch (Exception e) {
// e.printStackTrace();
// }
//}
}
public class PersonAdapter extends ArrayAdapter<Person> {
private ArrayList<Person> items;
public PersonAdapter(Context context, int textViewResourceId, ArrayList<Person> items) {
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
Button mButton_dial = (Button) v.findViewById(R.id.widget39);
mButton_dial.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
performDial();
}
});
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row, null);
}
Person p = items.get(position);
if (p != null) {
TextView tt = (TextView) v.findViewById(R.id.toptext);
TextView bt = (TextView) v.findViewById(R.id.bottomtext);
if (tt != null){
tt.setText(p.getName());
}
if(bt != null){
bt.setText("전화번호: "+ p.getNumber());
}
}
return v;
}
}
class Person {
private String Name;
private String Number;
public Person(String _Name, String _Number){
this.Name = _Name;
this.Number = _Number;
}
public String getName() {
return Name;
}
public String getNumber() {
return Number;
}
}
}
쭈빈파파입니다. 같은 문제로 고민하고 있어서요... 혹시 해결방법 찾으셨나요? 저도 찾으면 알려드리죠... 수고하세요...