이번에 학교 프로젝트로 일정관리어플을 만들고 있는데요.
달력을 클릭해서 일정을 추가하고 그 일정들을 날짜에 맞게 리스트 뷰로 출력하는 것까지는 되는데요
출력된 리스트 뷰를 클릭하면 수정과 삭제가 되는 ui에 클릭한 데이터 값을 넣고 싶습니다.
package com.example.sinyoung.scheduler;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashMap;
import static android.R.id.list;
/**
* Created by SinYoung on 2017-05-27.
*/
public class javaDaySchedule extends Activity {
DBHelper helper;
SQLiteDatabase db;
String CalenderV;
ArrayAdapter arrayAdapter;
ArrayList<HashMap<String, String>> personList;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dayschedule);
helper = new DBHelper(this);
db = helper.getWritableDatabase();
personList = new ArrayList<HashMap<String,String>>();
if (savedInstanceState == null) {
Bundle extras = getIntent().getExtras();
if(extras == null) {
CalenderV= null;
} else {
CalenderV= extras.getString("STRING_I_NEED");
}
} else {
CalenderV= (String) savedInstanceState.getSerializable("STRING_I_NEED");
}
TextView testView = (TextView)findViewById(R.id.textView);
testView.setText(CalenderV);
try {
db = helper.getWritableDatabase();
} catch (SQLiteException ex){
db = helper.getReadableDatabase();
}
Cursor cursor = db.rawQuery("SELECT * FROM schedule WHERE Date='"+CalenderV+"'",null);
startManagingCursor(cursor);
String[] from = {"Title","Content"};
int[] to = {android.R.id.text1,android.R.id.text2};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_2,cursor,from,to);
ListView list = (ListView) findViewById(R.id.listview2);
list.setAdapter(adapter);
ArrayList array_list = helper.getAllschedule();
arrayAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_2,array_list);
//넘겨주는 부분
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
int id = arg2 + 1;
Bundle dataBundle = new Bundle();
dataBundle.putInt("id", id);
Intent intent = new Intent(javaDaySchedule.this,javaScheduleUptate.class);
intent.putExtras(dataBundle);
startActivity(intent);
}
});
Button b = (Button)findViewById(R.id.dayscheduleAdd);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(javaDaySchedule.this,javaScheduleadd.class);
intent.putExtra("STRING_I_NEED",CalenderV);
javaDaySchedule.this.startActivity(intent);
}
});
}
public void onButtonCreateActivity(View v){
finish();
}
위 소스 ui

여기서 aaaa를 클릭하면 sqlite에 저장되어있는 값이 넘어가서 띄어주어야 하는데 계속 에러가나네요...
package com.example.sinyoung.scheduler;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;
import java.util.Date;
/**
* Created by SinYoung on 2017-05-28.
*/
public class javaScheduleUptate extends ActionBarActivity {
private DBHelper helper;
int id=0;
TextView Title;
TextView Content;
TextView Time;
TextView Alarm;
TextView Date;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.scheduleupdate);
Date = (TextView) findViewById(R.id.editUpdateDate);
Title = (TextView) findViewById(R.id.editUpdateTitle);
Content = (TextView) findViewById(R.id.editUpdateContent1);
Time = (TextView)findViewById(R.id.editUpdateTime1);
Alarm = (TextView) findViewById(R.id.editUpdateAlarm);
helper = new DBHelper(this);
/* 여기 주석 부분이 값을 넣어 주는 부분인데 있으면 ui도 안뜨고 에러가 나요
Bundle extras = getIntent().getExtras();
if(extras != null){
int Value = extras.getInt("id");
if (Value > 0){
Cursor cursor = helper.getData(Value);
id = Value;
cursor.moveToFirst();
String date = cursor.getString(cursor.getColumnIndex(DBHelper.SCHEDULE_DATE));
String title = cursor.getString(cursor.getColumnIndex(DBHelper.SCHEDULE_TITLE));
String content = cursor.getString(cursor.getColumnIndex(DBHelper.SCHEDULE_CONTENT));
String time = cursor.getString(cursor.getColumnIndex(DBHelper.SCHEDULE_TIME));
String alarm = cursor.getString(cursor.getColumnIndex(DBHelper.SCHEDULE_ALARM));
if (!cursor.isClosed()){
cursor.close();
}
Date .setText((CharSequence) date);
Title.setText((CharSequence) title);
Content.setText((CharSequence) content);
Time.setText((CharSequence) time);
Alarm.setText((CharSequence) alarm);
}
}*/
}
public void delete(View view) {
Bundle extras = getIntent().getExtras();
if (extras != null) {
int Value = extras.getInt("id");
if (Value > 0) {
helper.delete(id);
Toast.makeText(getApplicationContext(), "삭제되었음", Toast.LENGTH_SHORT).show();
finish();
} else {
Toast.makeText(getApplicationContext(), "삭제되지 않았음", Toast.LENGTH_SHORT).show();
}
}
}
public void edit(View view) {
Bundle extras = getIntent().getExtras();
if (extras != null) {
int value = extras.getInt("id");
if (value > 0) {
if (helper.update(id, Date.getText().toString(), Title.getText().toString(), Content.getText().toString(), Time.getText().toString(), Alarm.getText().toString())) {
Toast.makeText(getApplicationContext(), "수정되었음", Toast.LENGTH_SHORT).show();
finish();
} else {
Toast.makeText(getApplicationContext(), "수정되지 않았음", Toast.LENGTH_SHORT).show();
}
}
}
}
public void onButtonCreateActivity(View v){
finish();
}
}
위 소스 UI

어떤 점이 문제일까요......