0
我目前有一个网格视图与自定义数组适配器和过滤器。我正在尝试创建一个基于GridView项目的长按鼠标的上下文菜单。但是,在添加过滤器之前,我会根据它的位置说明哪个项目已被按下,现在,当项目被过滤时,位置会改变,因此所采取的任何操作都会使用错误的资源/选择错误的项目。任何想法呢?GridView使用过滤器创建上下文菜单
这里是我的GridView控件初始化:
final GridView gridview = (GridView) findViewById(R.id.gridview);
aAdpt = new shareadapter(planetsList, this);
gridview.setAdapter(aAdpt);
gridview.setTextFilterEnabled(true);
this.registerForContextMenu(gridview);
这里是我的onClickListener(由于我怎么会正常获取的过滤项中的活动/意图用一个例子:
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Planet link = (Planet) gridview.getItemAtPosition(position);
Intent i = new Intent(ShareActivity.this,
ShareActivitySecond.class);
i.putExtra("IdImgFull", link.getIdImgFull());
i.putExtra("IdImgShare", link.getIdImgShare());
startActivity(i);
// startSecondActivity(position);
}
});
而且这里是我的创建上下文菜单,你可以看到它取决于位置,我不知道如何添加变量int link.getIdImgShare()
in到它。
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.shareactivity, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
.getMenuInfo();
int IndexSelected = info.position;
switch (item.getItemId()) {
case R.id.share:
shareMethod(IndexSelected);
return true;
case R.id.save:
saveMethod(IndexSelected);
return true;
default:
return true;
}
}