我正在尝试从Android开发中的网格视图中获取所选项目。这是我用来填充网格视图的drawable列表:
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){
}
}
}
});
我设法根据点击次数获得正确的整数位置。我想要做的是基于所选择的drawable,我试图提取出字符串。
例如,当点击传输图标时,我正在尝试获取&#34; transport_icon&#34;字符串来自&#34; R.drawable.transport_icon&#34;并将其存储为字符串。但是,我不知道该怎么做。
有什么想法吗?
答案 0 :(得分:0)
首先从整数数组(ids)中定义一个drawable
Drawable drawable = context.getResources().getDrawable(iconlist[n]);
你可以得到像这样的资源名称
String name = context.getResources().getResourceEntryName(ID);
此方法应该返回您需要的内容。
答案 1 :(得分:-1)
您可以尝试以下方式:
Context.getResources().getResourceEntryName(R.drawable.transport_icon)
或
Context.getResources().getResourceName(R.drawable.transport_icon)
参考:https://developer.android.com/reference/android/content/res/Resources.html#getResourceEntryName(int)