2012-01-27 2 views
0

У меня есть следующий фрагмент кода.Как реализовать onitem click listener в SimpleCursorAdapter

public class ImageStoreActivity extends ListActivity { 
private DBHelper mDB; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    mDB = new DBHelper(this); 

    mDB.Reset(); 

    Bitmap img = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); 

    mDB.createItemEntry(new ListObject(img, "x", "999999", "blah")); 
    mDB.createItemEntry(new ListObject(img, "y",  "56789", "blah blah")); 
    mDB.createItemEntry(new ListObject(img, "Pfirsich", "4112344", "blaflakf")); 
    mDB.createItemEntry(new ListObject(img, "Zitrone", "4023232", "511131")); 

    String[] columns = {mDB.KEY_ID, mDB.KEY_IMG, mDB.KEY_NAME, mDB.KEY_PHONE, mDB.KEY_RELATION}; 
    String table = mDB.RELATION_TABLE; 

    Cursor c = mDB.getHandle().query(table, columns, null, null, null, null, null); 

    startManagingCursor(c); 

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
      R.layout.main, 
      c, 
      new String[] {mDB.KEY_IMG, mDB.KEY_NAME, mDB.KEY_PHONE, mDB.KEY_RELATION}, 
      new int[] {R.id.img, R.id.txt, R.id.textview,R.id.textview1}); 

    adapter.setViewBinder(new ItemViewBinder()); 
    setListAdapter(adapter); 
    } 
} 

как я добавить этот код

public void onItemClick(AdapterView parentView, View v, 
       int position, long id) {} 

в коде выше. помогите мне

ответ

2

Добавить этот код после setListAdapter (адаптер);

final ListView lv = getListView(); 
lv.setTextFilterEnabled(true); 
lv.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {      
    // add the array list here..  
    }   
}); 
+0

well..I нет ListView в моей XML. У меня есть только строка (R.layout.main) как xml-контент. выше код будет работать, только если есть список, определенный в родительском xml праве? это точно моя проблема – user1002448

+0

ok, то почему вы используете ListActivity() в коде, поэтому я использовал этот код. –

+0

данные simplecursordapter привязаны к списку. поэтому мы должны использовать listactivity здесь – user1002448

0

Override метод onListItemClick(), как это,

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 
     // Do something here 
     ... 
}