Oncreate()안에서
리스트에 setAdapter 하는부분에서 에러가 발생합니다.
알림장1이 쭉 떠야하는데...아예 안되고 아래와같은에러가나네요.
Java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
다른 리스트뷰에다가 이 어댑터 그대로 쓰면 잘 되는거보니
Adapter에는 문제가 없고...
리스트뷰에 문제가 있는건데 뭔지모르겠습니다.
public class MainActivity extends AppCompatActivity {
public static ListView listview;
public Activity activity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
activity=this;
CustomList_Alrim customList_alrim=new CustomList_Alrim(activity);
listview = (ListView)findViewById(R.id.listview);
// 리스트뷰에 어뎁터 설정
listview.setAdapter(customList_alrim);
// 다이얼로그 생성
}
public class CustomList_Alrim extends BaseAdapter {
private ArrayList<String> list;
private Activity activity;
CustomList_Alrim(Activity activity) {
Log.e("main", "CustomList_Alrim리스트뷰 생성자");
this.activity = activity;
list = new ArrayList<String>();
list.add("알림장1");
}
public void setName(String name) {
list.add(name);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Log.e("main", "write getview");
ListViewHolder holder = null;
final int pos = position;
TextView less;
// 최초 뷰 생성
if (convertView == null) {
Log.e("main", "null");
LayoutInflater inflater = (LayoutInflater) activity.getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.list_row, parent, false);
less = (TextView) convertView.findViewById(R.id.name_text);
holder = new ListViewHolder();
holder.less = less;
// list values save
convertView.setTag(holder);
// 텍스트 보이기
less.setVisibility(View.VISIBLE);
} else {
Log.e("main", "null아님!");
// list values get
holder = (ListViewHolder) convertView.getTag();
less = holder.less;
}
// 리스트 이름 보이기
less.setText(list.get(pos));
return convertView;
}
private class ListViewHolder {
TextView less;
}
}
}