GridView Android中的上下文菜单 [英] Context menu in GridView Android

查看:77
本文介绍了GridView Android中的上下文菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有 GridView

GridView gridView = (GridView) findViewById(R.id.grid_view);

// Instance of ImageAdapter Class
final String [] imageNames = {"knee_kg","knee_ks","knee_kp","knee_kg_90", 
                              "pipe_knee", "cover", "funnel", "crater"};
Integer[] mThumbIds = new Integer[imageNames.length];
for (int i = 0; i<imageNames.length; i++){
    Integer resID = getResources().getIdentifier(imageNames[i], "drawable", 
                                                 getPackageName());
    mThumbIds[i] = resID;
}

OnItemCliclListener

gridView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) {
        Class clazz = null;
        String className = imageNameToUpper(imageNames[position]);

        try {
            clazz = Class.forName("com.example.pipecalculator.activities." + className);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Intent intentClass = new Intent(getApplicationContext(), clazz);
        startActivity(intentClass);
    }
});

我只想在两个项目上单击创建上下文菜单: knee_ks knee_kp
另一方面是:

I want create Context menu only on two item click: "knee_ks","knee_kp". On the other is to be:

Intent intentClass = new Intent(getApplicationContext(), clazz);
startActivity(intentClass);

有可能吗?

推荐答案

首先为上下文菜单注册 gridView

First Register your gridView for context menu

 registerForContextMenu(grid);

然后覆盖函数

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

    getMenuInflater().inflate(R.menu.context_menu, menu);
    GridView gv = (GridView) v;
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
    int position = info.position;
            if(!(position==0 || position==2))
             {
             menu.close();
             )
}

上下文菜单侦听器

     @Override
public boolean onContextItemSelected(MenuItem item) {
   return true;             
      }

这篇关于GridView Android中的上下文菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆