2012-04-10 2 views
0

SQLite를 Listview에 채우는 코드를 만들었지 만, 나는 사용자가 listview에서 선택한 항목에 따라 TOAST 메시지를 표시하려고합니다. onClick 메서드를 사용해야합니까?.목록보기에서 sqlite에 대한 Onclick?

public void createTable(SQLiteDatabase mDb, String table) { 
     try { 
      mDb.execSQL("create table if not exists " 
        + table 
        + " (id integer primary key autoincrement, " 
        + "username text not null, birthday text not null,image text);"); 
     } catch (SQLException e) { 
      Toast.makeText(getApplicationContext(), "yes", 
        Toast.LENGTH_LONG).show(); 
     } 
    } 

    public void insert(SQLiteDatabase mDb, String table) { 

        ContentValues values = new ContentValues(); 


    public void getAllData(String table) { 
     Cursor c = mDb.rawQuery("select * from " + table, null); 
     int columnsSize = c.getColumnCount(); 
     listData = new ArrayList<HashMap<String, Object>>(); 
     while (c.moveToNext()) { 
      HashMap<String, Object> map = new HashMap<String, Object>(); 
      for (int i = 0; i < columnsSize; i++) { 
       map.put("id", c.getString(0)); 
       map.put("username", c.getString(1)); 
       map.put("birthday", c.getString(2)); 
       map.put("image", c.getString(3)); 
      } 
      listData.add(map); 
     }   
    } 
    public boolean delete(SQLiteDatabase mDb, String table, int id) { 
     String whereClause = "id=?"; 
     String[] whereArgs = new String[] { String.valueOf(id) }; 
     try { 
      mDb.delete(table, whereClause, whereArgs); 
     } catch (SQLException e) { 
      Toast.makeText(getApplicationContext(), "هˆ é™¤و•°وچ®ه؛“ه¤±è´¥", 
        Toast.LENGTH_LONG).show(); 
      return false; 
     } 
     return true; 
    } 
} 

OnCreateContextMenuListener listviewLongPress = new OnCreateContextMenuListener(){ 
    public void onCreateContextMenu(ContextMenu menu, View v, 
      ContextMenuInfo menuInfo) { 
     final AdapterView.AdapterContextMenuInfo info = 
     (AdapterView.AdapterContextMenuInfo) menuInfo; 
     new AlertDialog.Builder(ListView_SqliteActivity.this) 
       .setTitle("عنوان1") 
       .setIcon(android.R.drawable.ic_dialog_info) 
       .setMessage("عنوان 2") 
       .setPositiveButton("وک¯", 
         new DialogInterface.OnClickListener() { 
          public void onClick(
            DialogInterface dialoginterface, int i) { 
           int mListPos = info.position; 
           HashMap<String, Object> map = listData 
             .get(mListPos); 
           int id = Integer.valueOf((map.get("id") 
             .toString())); 
           if (dao.delete(mDb, "student", id)) {          
            listData.remove(mListPos); 
            listItemAdapter.notifyDataSetChanged(); 
           } 
          } 
         }) 
       .setNegativeButton("هگ¦", 
         new DialogInterface.OnClickListener() { 
          public void onClick(
            DialogInterface dialoginterface, int i) { 

          } 
         }).show(); 
    } 
}; 

@Override 
public void finish() { 
    // TODO Auto-generated method stub 
    super.finish(); 
    mDb.close(); 
} 

}

답변

0

난 당신이 ListView에 대한 Click 이벤트를 구현하려는 귀하의 질문에서 약간의 가정, 당신은 클릭 토스트 메시지를 표시합니다.

그러므로 목록보기 클릭을 처리하려면 listview에 setOnItemClickListener을 구현하십시오.

list.setOnItemClickListener(new ListView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> a, View v, int i, long l) { 
      // do whatever you want 
     } 
    }); 
+0

어디에서 붙여야합니까? 제발 말해 줄 수 있니? – Ali

+0

동일한 클래스에 붙여 넣기 –

+0

다음 행 :'list.setOnCreateContextMenuListener (listviewLongPress); ' –

관련 문제