public class MainActivity extends Activity {
private ArrayList<String> item;
private ArrayAdapter<String> adapter;
ListView list;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);}
public void mOnClick(View v) {
SQLiteDatabase db;
String sql;
switch(v.getId()) {
case R.id.gps :
Log.d("location", "button pressed");
Calendar calendar = Calendar.getInstance();
SimpleDateFormat formater = new SimpleDateFormat("yy.MM.dd HH:mm:ss");
Date current = new Date();
String mtime = formater.format(current);
System.out.println(formater.format(calendar.getTime()));
getTime = (TextView)findViewById(R.id.getTime);
getTime.setText(mtime);
break;
case R.id.save :
String timing2 = getTime.getText().toString();
String juso2 = juso.getText().toString();
dbHelper = new DBHelper(this, dbName, null, dbVersion);
db = dbHelper.getWritableDatabase();
sql = String.format("INSERT INTO ksj(timing, juso) VALUES('%s', '%s');", timing2, juso2);
Log.d("tag", sql);
db.execSQL(sql);
Toast.makeText(this, "저장되었습니다.", Toast.LENGTH_SHORT).show();
break;
case R.id.data :
setContentView(R.layout.activity2nd);
ArrayList<String> item = new ArrayList<String>();
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_single_choice, item);
ListView list = (ListView)findViewById(R.id.list);
list.setAdapter(adapter);
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
//adapter.notifyDataSetChanged();
Log.d("DATA", "Search data");
db = dbHelper.getReadableDatabase();
sql = "SELECT*FROM ksj;";
Cursor cursor = db.rawQuery(sql, null);
if(cursor.getCount() > 0) {
while(cursor.moveToNext()){
String time1 = cursor.getString(1);
Log.d("tag", "cursor.getString1 = "+time1);
String juso1 = cursor.getString(2);
Log.d("tag", "cursor.getString2 =" +juso1);
item.add(time1+"\n"+juso1);
adapter.notifyDataSetChanged();
list.setOnItemClickListener(mItemClickListener);
findViewById(R.id.delete).setOnClickListener(mClickListener);
}
cursor.close();
}
dbHelper.close();
}
}
ListView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
};
Button.OnClickListener mClickListener = new View.OnClickListener() {
public void onClick(View v) {
switch(v.getId()) {
case R.id.delete:
ListView list = (ListView)findViewById(R.id.list);
int id = list.getCheckedItemPosition();
if(id != ListView.INVALID_POSITION) {
item.remove(id);
list.clearChoices();
adapter.notifyDataSetChanged();
}
break;
}
}
};
}
delete 버튼을 눌렀을때 오류캣을 뿜습니다. 위에 삽입하면서 무슨 java code 라면서 이상한게 들어갓는데 무시요
소스기능은 버튼을 눌러 현재날짜와 시간을 얻고 이걸 db에 저장한후 db값을 불러온 LISTVIEW에서 리스트 한개를 삭제하려는 의도입니다,.
오류캣270번줄 (위소스 91번 줄( item.remove(id); ) 에서 오류 납니다.
ArrayList<String> item;
private
ArrayAdapter<String> adapter;
ListView list;
위3개는 전역변수로 선언해놨습니다.
클릭리스너 위치를 잘못 잡은것 같기두 하구요.
06-12 11:19:45.352: E/AndroidRuntime(790): FATAL EXCEPTION: main
06-12 11:19:45.352: E/AndroidRuntime(790): java.lang.NullPointerException
06-12 11:19:45.352: E/AndroidRuntime(790): at com.example.gps0611a.MainActivity$2.onClick(MainActivity.java:270)