마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

ListView position값을 읽을수가 없습니다.

0 추천
public class MainActivity extends Activity {
 DBHelper dbHelper;
 private ArrayList<String> item;
 private ArrayAdapter<String> adapter;
 ListView list;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
     
  juso = (TextView)findViewById(R.id.juso); 
  dbHelper = new DBHelper(this, dbName, null, dbVersion);
 }
 
 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);
    list.setOnItemClickListener(mItemClickListener);
           findViewById(R.id.delete).setOnClickListener(mClickListener);
    //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();
                }
           cursor.close();
        }
        dbHelper.close();
        break;
           }
  }
 
 ListView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                  }
    };
   
    Button.OnClickListener mClickListener = new View.OnClickListener() {
     //int id = -1; 
public void onClick(View v) {
           switch(v.getId()) {
           case R.id.delete:
              int id = list.getCheckedItemPosition();
              if(id != ListView.INVALID_POSITION) {
                   item.remove(id);
                   list.clearChoices();
                   adapter.notifyDataSetChanged();
              }
              break;
           }
        }
    };
}

 

위소스 92번 줄에서 오류 납니다.

06-12 00:32:59.382: E/AndroidRuntime(527): FATAL EXCEPTION: main
06-12 00:32:59.382: E/AndroidRuntime(527): java.lang.NullPointerException
06-12 00:32:59.382: E/AndroidRuntime(527):  at com.example.gps0611a.MainActivity$2.onClick(MainActivity.java:262)

 

 

앤드류이드 (6,190 포인트) 님이 2013년 6월 12일 질문

2개의 답변

0 추천
 
채택된 답변
list 가 null이겠네요.

 

findviewbyid로 찾아주세요
안티푸라면 (6,700 포인트) 님이 2013년 6월 12일 답변
앤드류이드님이 2013년 6월 12일 채택됨
0 추천
ListView 를 찾아주는 구문이 없네요! ^^*
안드로메다개발자 (8,830 포인트) 님이 2013년 6월 12일 답변
추가해줬더니 이번엔 94번이 NULL값이네요..
null 오류 잡는게 저에겐 왜 이리 어려운지 모르겟네요
...