我有一个扩展ListActivity的类和另一个扩展BaseAdapter的类。当我启动ListActivity类时,我填充一个对象列表并将其传递给Adapter。
当用户从列表中选择一个或多个itens时,我正试图显示一个上下文actoin栏但是我被卡住了。我已经尝试了很多方法,我发现只做一些接近的事情就是把一个监听器放在适配器的方法getView()上 - 但是当我这样做时,我不能执行多个选择而且上下文操作栏仍然无法正常工作
显示上下文菜单以及从ListView中选择itens缺少什么?
public class ChatActivity extends ListActivity {
@Override
protected void onCreate(Bundle bundle) {
ListView listView = getListView();
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
listView.setMultiChoiceModeListener(new MultiChoiceModeListener() {
@Override
public boolean onPrepareActionMode(ActionMode arg0, Menu arg1) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onDestroyActionMode(ActionMode arg0) {
// TODO Auto-generated method stub
}
@Override
public boolean onCreateActionMode(ActionMode arg0, Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.delete, menu);
return true;
}
@Override
public boolean onActionItemClicked(ActionMode arg0, MenuItem arg1) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onItemCheckedStateChanged(ActionMode arg0, int arg1, long arg2,
boolean arg3) {
// TODO Auto-generated method stub
}
});
}
}
public class ChatAdapter extends BaseAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View convertView = LayoutInflater.from(mContext).inflate(
R.layout.chat_row, parent, false);
/*convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ColorDrawable drawable = ((ColorDrawable)v.getBackground());
if(drawable == null || drawable.getColor() == Color.GRAY){
v.setBackgroundColor(Color.WHITE);
} else {
v.setBackgroundColor(Color.GRAY);
}
//etc
}
});*/
return convertView;
}
}
答案 0 :(得分:0)
以这种方式在listview列表上的setAdapter之后注册contextMenu ..
registerForContextMenu(getListView());
或者如果上面的方法不起作用,你可以为你的自定义布局视图创建contextmenuListner ..就像这样
v.setOnCreateContextMenuListener(this);
其他SO答案中的更多描述 https://stackoverflow.com/a/4001019/942224
或强>
您可以使用PopUpWindow。在这里,您可以将自定义视图显示为关于视图位置的弹出窗口..因此它将与您的上下文菜单相同。