2017-11-05 7 views
-1

リサイクラビューにイメージのリストがあります。バックグラウンドで使用されているイメージの名前を表示します。しかし、画像をクリックすると"[email protected]"がlog.Howに表示されます。私はスイッチのケースでこのイメージ名を使用して、いくつかのタスクを実行したいと思います。リサイクラビューで描画可能なイメージ名を取得する方法

メイン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 
} 

MyAdapter.java

@Override 
    public void onBindViewHolder(final RecyclerViewHolder holder, final int position) { 
     final ItemModel model = arrayList.get(holder.getAdapterPosition()); 

     final RecyclerViewHolder mainHolder = (RecyclerViewHolder) holder;// holder 

     Bitmap image = BitmapFactory.decodeResource(context.getResources(), model.getImage());// This will convert drawbale image into 
     // bitmap 
     mainHolder.imageview.setImageBitmap(Bitmap.createScaledBitmap(image, 330, 500, false)); 
     mainHolder.imageview.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Log.v("Image name:", String.valueOf(mainHolder.imageview.getDrawable())); 
      } 
     }); 
     setAnimation(holder.cardView, position); 
    } 

答えて

-1

描画可能なフォルダに配置した画像をしてR.drawable.image_name経由でアクセスします。

0

私は試してみる機会がありませんでしたが、これはあなたに名前を与える必要があります。

mainHolder.imageview.getResources().getResourceName(mainHolder.imageview.getId())) 

これは、show imageviewの名前のみです。

ので、私はそれとこれを行うための唯一の方法を確認します

まし
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");)); 
      } 
     }); 
+0

** V /画像名:: com.example.parmarravi21.recylerviewtuto:ID /画像**まだ不足しているイメージ名 –

+0

Iをチェックしますが、タグでのみ行うことができます。上記のコードを更新しました。 –

+0

上記のコードでは、 "yourImageName"というタグを持つリストビュー内のすべての画像を設定します。私の質問は、recylcerViewに存在する画像の名前を一意に識別する方法です。どのように動くべきか[link](https://www.youtube.com/watch?v=XwzrLyNTTu8&feature=youtu.be) –

関連する問題