Java 如何在回收器视图中获取可绘制图像名称

Java 如何在回收器视图中获取可绘制图像名称,java,android,android-recyclerview,Java,Android,Android Recyclerview,我在回收器视图中有一个图像列表。我想显示背景中使用的图像的名称。但当我点击任何图像时,它会返回android.graphics.drawable。BitmapDrawable@1cca205“在日志中。如何显示图像名称?我想在switch case中使用此映像名称并执行一些任务 Main Activity.java public static String[] AddCustomitems = {"Blink single message", "Blink double message", "M

我在回收器视图中有一个图像列表。我想显示背景中使用的图像的名称。但当我点击任何图像时,它会返回android.graphics.drawable。BitmapDrawable@1cca205“在日志中。如何显示图像名称?我想在switch case中使用此映像名称并执行一些任务

Main Activity.java

public static String[] AddCustomitems = {"Blink single message", "Blink double message", "Message", "Scroll", "Split", "Temp"};
    public static final Integer[] customviewsDrawable = {R.drawable.custom_blink, R.drawable.custom_blink_double, R.drawable.custom_message, R.drawable.custom_scroll, R.drawable.custom_split_double, R.drawable.temp};
    public static final Integer defaultAdd =R.drawable.custom_add;
    ArrayList<ItemModel> arrayList = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        arrayList.add(new ItemModel(defaultAdd));
        for(int i =0;i<customviewsDrawable.length;i++){
            ItemModel itemModel = new ItemModel();
            arrayList.add(new ItemModel(customviewsDrawable[i]));
        }
        recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
        //Set RecyclerView type according to intent value
        recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this, LinearLayoutManager.HORIZONTAL, false));
        adapter = new MyAdapter(MainActivity.this, arrayList);
        recyclerView.setAdapter(adapter);// set adapter on recyclerview
        adapter.notifyDataSetChanged();// Notify the adapter
}

将图像放在drawable文件夹中,并通过R.drawable.image\u name访问它。

我没有机会尝试,但这会给你一个名称

mainHolder.imageview.getResources().getResourceName(mainHolder.imageview.getId()))
这只是显示图像视图名称

因此,我检查这一点,这是唯一的方法:

mainHolder.imageview.setImageBitmap(Bitmap.createScaledBitmap(image, 330, 500, false));
mainHolder.imageview.setTag("yourImageName");
        mainHolder.imageview.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.v("Image name:", String.valueOf(mainHolder.imageview.getTag("yourImageName");)); 
            }
        });

获取了V/Image name::com.example.parmarravi21.recylerviewtuto:id/Image仍然缺少图像名称我检查了,但您只能使用标记执行此操作。我已经更新了上面的代码。使用上面的代码,我将在一个列表视图中设置所有图像,标记为“yourImageName”。我的问题是如何唯一标识recylcerView中存在的图像的名称。这就是它应该如何工作的方式,这似乎是不可能的。也许您可以更改itemmodel,添加标题字符串,并在onBindViewHolder中设置带有标题的标记。但是你可以打电话。因为当您描述位图或可绘图时,java会将其转换为引用id。因此,您没有字符串,也无法以成功实现代码的方式调用它
mainHolder.imageview.setImageBitmap(Bitmap.createScaledBitmap(image, 330, 500, false));
mainHolder.imageview.setTag("yourImageName");
        mainHolder.imageview.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.v("Image name:", String.valueOf(mainHolder.imageview.getTag("yourImageName");)); 
            }
        });