바로 Main에서 리스트를 셋팅하고 삭제해야하므로 Intent이동이라던지, Extra를 사용할 수 없는 상황입니다.
delete할 때 파라미터로 Schedule의 객체를넘겨주게 되는데. null값이 들어와요.. 어떻게 해결해야 합니까?
public class Schedule_MainActivity extends AppCompatActivity {
EditText today_edit;
ListView listView;
Schedule schedule = new Schedule(); // null값인 듯 함.
private Schedule_Adapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.schedule_activity_main);
// 객체생성
listView = (ListView) findViewById(R.id.list_view);
add_btn = (ImageView) findViewById(R.id.add_btn);
today_edit = (EditText) findViewById(R.id.today_edit);
activeIcon = (ImageView) findViewById(R.id.star_active_icon);
// 어뎁터
mAdapter = new Schedule_Adapter();
listView.setAdapter(mAdapter);
listView.setOnItemClickListener(itemSelect);
add_btn.setOnClickListener(scheduleAdd);
}
View.OnClickListener scheduleAdd = new View.OnClickListener() {
@Override
public void onClick(View v) {
if(today_edit != null && !today_edit.toString().trim().equals("")) {
Schedule sch = new Schedule();
fillSchedule(sch);
Schedule_DBHelper.getInstance().insertSchedule(sch);
showList();
}
}
};
// 일정 삭제
AdapterView.OnItemClickListener itemSelect = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(Schedule_MainActivity.this);
alertDialogBuilder.setTitle("일정삭제");
alertDialogBuilder.setMessage("일정을 삭제하시겠습니까?").setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(Schedule_MainActivity.this, schedule.text+"", Toast.LENGTH_SHORT).show(); // null값이 출력됩니다.
Schedule_DBHelper.getInstance().deleteSchedule(schedule);// 객체를 넘겨주면 delete작업이 일어나야 하는데 null이 들어가니까 delete가 안되네요..
Toast.makeText(Schedule_MainActivity.this, "삭제되었습니다.", Toast.LENGTH_SHORT).show();
}
}).setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { dialog.cancel(); }
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
};
private void fillSchedule(Schedule che) {
che.text = today_edit.getText().toString();
}
private void showList() {
List<Schedule> list = Schedule_DBHelper.getInstance().searchSchedule();
mAdapter.clear();
mAdapter.addAll(list);
mAdapter.notifyDataSetChanged();
}
@Override
protected void onResume() {
super.onResume();
showList();
}
}