java - 点击监听器的Android GridView 获取所选项目

标签 java android gridview onclicklistener

我正在尝试从 Android 开发中的 GridView 中获取所选项目。这是我用来填充 GridView 的可绘制对象列表:

private static Integer[] iconlist = {
        R.drawable.food_icon, R.drawable.transport_icon, R.drawable.entertainment_icon,
        R.drawable.bill_icon, R.drawable.others_icon, R.drawable.salary_icon,
        R.drawable.investment_icon, R.drawable.bonus_icon, R.drawable.medication_icon,
        R.drawable.drinks_icon, R.drawable.car_icon, R.drawable.mask_icon,
        R.drawable.shopping_icon, R.drawable.lottery_icon, R.drawable.pet_icon,
        R.drawable.movie_icon, R.drawable.plant_icon, R.drawable.paint_icon,
};

点击监听器上的 gridview:

grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent,
                                View v, int position, long id) {

            Toast.makeText(getActivity(), "Grid Item " + (position + 1) + " Selected", Toast.LENGTH_LONG).show();
            int selected = position + 1;
            for(int i = 0; i < iconlist.length; i++){
                if(iconlist[i] == selected){

                }
            }
        }
    });

我设法根据点击次数获得了正确的整数位置。我正在尝试做的是基于选定的可绘制对象,我正在尝试提取字符串。

例如,单击传输图标时,我试图从“R.drawable.transport_icon”获取“transport_icon”字符串并将其存储为字符串。但是,我不确定该怎么做。

有什么想法吗?

最佳答案

首先从整数数组(ids)定义一个drawable

Drawable drawable = context.getResources().getDrawable(iconlist[n]);

你可以这样获取资源的名称

String name = context.getResources().getResourceEntryName(ID);

此方法应返回您需要的内容。

关于java - 点击监听器的Android GridView 获取所选项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43984122/

相关文章:

java - 如何配置 jetty 与 Guice 和 Vaadin 一起运行

java - 如何缓冲 GroupedFlux 的 Flux?

java - Kotlin 类属性和 Java 类字段有什么区别

android - 即使在首次启动时 Flutter 权限状态 NotAgain

java - 调整gridview和按钮的roe

java - jni本地方法问题

android - 我应该为摩托罗拉 TC55 等屏幕密度/尺寸设置哪些资源限定符

android - 从 Android 卸载应用程序后如何删​​除本地存储数据

同时具有水平和垂直滚动条的Android GridView

android - 滚动时 GridView 在 getView 方法中崩溃