2012-01-27 112 views
0

我有以下代码片段。如何在SimpleCursorAdapter中实现onitem点击监听器

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(adapter)后添加此代码;

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在我的XML没有的ListView。我只有行(R.layout.main)作为xml内容。上面的代码只有在父xml权限中定义了一个listview时才有效?那正是我的问题 – user1002448 2012-01-27 12:13:24

+0

OK,那为什么你的使用ListActivity()中的代码,这就是为什么我用这个代码。 – 2012-01-27 12:16:25

+0

simplecursordapter数据绑定到一个列表视图。所以我们必须在这里使用列表活动 – user1002448 2012-01-27 12:19:58

0

覆盖的onListItemClick()方法,这样,

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