안드로이드 프로그래밍 질문입니다.

baseAdapter를 이용해 adapter를 확장하여 Arraylist로 목록 보기를 만드려고 하는데, 오류가 납니다ㅠㅠ
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.ArrayList.add(java.lang.Object)' on a null object referenced
위와 같은 오류가 나고,
코드는 아래와 같습니다.
public class MainActivity extends AppCompatActivity { private ArrayList myDataList; private MyAdapter myAdapter; private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myDataList.add(new MyData(1, "홍길동", "01062548978"));
myDataList.add(new MyData(2, "성", "010458945"));
myDataList.add(new MyData(3, "경", "010789654"));
myAdapter = new MyAdapter(this, R.layout.custom_adapter_view, myDataList);
listView = (ListView)findViewById(R.id.listView);
listView.setAdapter(myAdapter);
}
}
public class MyData { private int _id; private String name; private String phone;
public MyData(int _id, String name, String phone){
this._id = _id;
this.name = name;
this.phone = phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public void setName(String name) {
this.name = name;
}
public void set_id(int _id) {
this._id = _id;
}
public String getPhone() {
return phone;
}
public String getName() {
return name;
}
public int get_id() {
return _id;
}
}
public class MyAdapter extends BaseAdapter{ private Context context; private int layout; private ArrayList myDataList; private LayoutInflater layoutInflater;
public MyAdapter(Context context, int layout, ArrayList myDataList){
this.context = context;
this.layout = layout;
this.myDataList = myDataList;
layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int pos, View view, ViewGroup viewGroup) {
final int position = pos;
if (view == null){
view = layoutInflater.inflate(layout, viewGroup, false);
}
TextView textNo = (TextView)view.findViewById(R.id.textNo);
TextView textName = (TextView)view.findViewById(R.id.textName);
TextView textPhone = (TextView)view.findViewById(R.id.textPhone);
Button btn_result = (Button)view.findViewById(R.id.btn_result);
textNo.setText(Integer.valueOf(myDataList.get(position).get_id()).toString());
textName.setText(myDataList.get(position).getName());
textPhone.setText(myDataList.get(position).getPhone());
btn_result.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View view){
Toast.makeText(context, myDataList.get(position).getPhone() + "선택", Toast.LENGTH_SHORT).show();
}
});
return view;
}
@Override
public long getItemId(int pos) {
return myDataList.get(pos).get_id();
}
@Override
public Object getItem(int pos) {
return myDataList.get(pos);
}
@Override
public int getCount() {
return myDataList.size();
}
}
해결했습니다~
해결했습니다~
댓글 달기