2011-08-16 11 views
2

私はArrayAdapterを持つGridViewを持っています。コンテキストアイテムの選択を検出し、選択したオブジェクトを削除するための "Delete"オプションを表示したいと思います。私はimageviewsでグリッドを塗りつぶすだけで、削除嘆願を検出する必要があります。私のコード:メソッドで選択されたGridViewアイテムを検出するonContextItemSelected

ArrayList<MyClass> array; 

public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.maingrid); 
    array=Manager.getMyArray(); 
    GridView gridview = (GridView) findViewById(R.id.gridview); 
    gridview.setAdapter(new mArrayAdapter(this,array)); 
    registerForContextMenu(gridview); 

} 

    @Override 
public void onCreateContextMenu(ContextMenu menu, View v, 
     ContextMenuInfo menuInfo) { 

    menu.add(0, DELETE_ID, 0 , R.string.delete); 

} 

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    switch(item.getItemId()) { 
     case DELETE_ID: 
      return true; 
    } 
    return super.onContextItemSelected(item); 
} 

削除する必要がある配列の要素はどのように推測できますか?あなたはこのような選択されたアイテムを取得することができます

AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 

:おかげonContextItemSelected

答えて

3

はこれを試して

youradapter.getItem((int)info.id)) 

を選択した項目を返すために、アダプタでgetItem()関数をオーバーライド..

関連する問題