RecyclerViewのViewHolderからアクティビティを呼び出していますか?

K20GH

文字列配列のコンテンツをロードしているRecyclerViewがありますが、これは正常に機能しますが、どのビューを押したかに応じて新しいアクティビティを開きたいと思います。

私が行ったことは、次のようなクラスと呼ばれる配列を作成することです。

<array name="classes">
    <item>ClassOne</item>
    <item>ClassTwo</item>
    <item>ClassThree</item>
    <item>ClassFour</item>
</array>

これらは配列に格納され、以下のMainActivityListアダプターに渡されます。

String[] classes = resource.getStringArray(R.array.classes);
MainActivityList adapter = new MainActivityList(titles,content, images, classes);
recyclerView.setAdapter(adapter);

OnClickListenerをViewHolderに追加し、各ビューに割り当てられているクラスをログに出力することができましたが、別のアクティビティを起動する方法を理解したり、作業したりすることができません。

クラス名は、たとえばClassOne.classのようになります。

public class MainActivityList extends RecyclerView.Adapter<MainActivityList.ViewHolder>  {
    private String[] mTitles;
    private String[] mContent;
    private String[] mClasses;
    private TypedArray mImages;
    private Context context;

    public MainActivityList(String[] titles, String[] content, TypedArray images, String[] classes) {
        this.mTitles = titles;
        this.mContent = content;
        this.mImages = images;
        this.mClasses = classes;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup,int i) {
        final View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.activity_main_card, viewGroup, false);
        ViewHolder vh = new ViewHolder(v);

        v.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                ViewHolder vh = (ViewHolder)v.getTag();
                Log.v("DEBUG", "Clicked" + vh.classes);
            }
        });
        return vh;
    }

    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.titleView.setText(mTitles[position]);
        holder.contentView.setText(mContent[position]);
        holder.imageView.setImageDrawable(mImages.getDrawable(position));
        holder.classes = mClasses[position];
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        public  TextView titleView;
        public  TextView contentView;
        public  ImageView imageView;
        public String classes;

        public ViewHolder(View v) {
            super(v);
            titleView = (TextView) v.findViewById(R.id.card_title);
            contentView = (TextView) v.findViewById(R.id.card_content);
            imageView = (ImageView)v.findViewById(R.id.card_image);
            v.setTag(this);
        }
    }

    @Override
    public int getItemCount() {
        return mTitles.length;
    }

}
午前

私も解決策を探していました、そして私はこの投稿を見つけました:http//venomvendor.blogspot.sg/2014/07/setting-onitemclicklistener-for-recycler-view.html

OnItemClickListenerインターフェースを使用することにより、アクティビティーを呼び出すことができるはずstartActivityです。

adapter.SetOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(View v , int position) {
        // This is in an Activity so should be able to start new activity, etc.


    }
});

更新:私はテストしました、ブログで言及された方法は私のために働きました。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

RecyclerViewのViewHolderからアクティビティを呼び出していますか?

分類Dev

recyclerview行内のアイテムから新しいアクティビティを呼び出す

分類Dev

ActionBarから新しいアクティビティを呼び出す

分類Dev

すでに終了しているアクティビティから Activity.setResult() を呼び出す

分類Dev

Android-別のアクティビティまたはクラスからgetText()を呼び出したい

分類Dev

アクティビティではないクラスからLoaderManagerを呼び出します

分類Dev

アクティビティ/フラグメントからViewHolderメソッドを呼び出す方法

分類Dev

Javascriptを使用してWebViewからアクティビティのメソッドを呼び出す

分類Dev

AlarmManagerによって呼び出されたBroadcastReceiverのアクティビティからメソッドを呼び出します

分類Dev

アクティビティからzxingを呼び出す

分類Dev

上記のアクティビティからviewpagerのasynctaskを呼び出します

分類Dev

アクティビティ2からActivity1のメソッドを呼び出します

分類Dev

別のアクティビティからadapter.notifyDataSetChangedを呼び出します

分類Dev

静的メソッドはどのようにして呼び出しアクティビティからコンテキストを取得しますか?

分類Dev

アクティビティの破壊を呼び出した後、破壊された同じアクティビティからのトーストがまだ表示されているのはなぜですか

分類Dev

他のアクティビティから関数を呼び出す方法android

分類Dev

アクティビティの外部からstartActivity()を呼び出す

分類Dev

Buttonから別のアクティビティを呼び出す

分類Dev

asynctaskからアクティビティのメソッドを呼び出す

分類Dev

別のアクティビティからメソッドを呼び出す

分類Dev

android:RecyclerView.ViewHolderから新しいアクティビティを読み込めません

分類Dev

呼び出し元のアクティビティからPagerAdapterでアイテム数を設定する

分類Dev

3番目のサブアクティビティから親アクティビティを呼び出すにはどうすればよいですか

分類Dev

SetResult()をディープリンクの呼び出しアクティビティに戻しますか?

分類Dev

インテントを介してフラグメントアクティビティからアクティビティを呼び出す

分類Dev

Androidはダイアログから呼び出しアクティビティに引数を渡します

分類Dev

アクティビティから別のアクティビティへの文字列の呼び出し

分類Dev

Androidのインテントから呼び出しアクティビティを取得する

分類Dev

アクティビティを拡張しないクラスからアクティビティを呼び出す

Related 関連記事

  1. 1

    RecyclerViewのViewHolderからアクティビティを呼び出していますか?

  2. 2

    recyclerview行内のアイテムから新しいアクティビティを呼び出す

  3. 3

    ActionBarから新しいアクティビティを呼び出す

  4. 4

    すでに終了しているアクティビティから Activity.setResult() を呼び出す

  5. 5

    Android-別のアクティビティまたはクラスからgetText()を呼び出したい

  6. 6

    アクティビティではないクラスからLoaderManagerを呼び出します

  7. 7

    アクティビティ/フラグメントからViewHolderメソッドを呼び出す方法

  8. 8

    Javascriptを使用してWebViewからアクティビティのメソッドを呼び出す

  9. 9

    AlarmManagerによって呼び出されたBroadcastReceiverのアクティビティからメソッドを呼び出します

  10. 10

    アクティビティからzxingを呼び出す

  11. 11

    上記のアクティビティからviewpagerのasynctaskを呼び出します

  12. 12

    アクティビティ2からActivity1のメソッドを呼び出します

  13. 13

    別のアクティビティからadapter.notifyDataSetChangedを呼び出します

  14. 14

    静的メソッドはどのようにして呼び出しアクティビティからコンテキストを取得しますか?

  15. 15

    アクティビティの破壊を呼び出した後、破壊された同じアクティビティからのトーストがまだ表示されているのはなぜですか

  16. 16

    他のアクティビティから関数を呼び出す方法android

  17. 17

    アクティビティの外部からstartActivity()を呼び出す

  18. 18

    Buttonから別のアクティビティを呼び出す

  19. 19

    asynctaskからアクティビティのメソッドを呼び出す

  20. 20

    別のアクティビティからメソッドを呼び出す

  21. 21

    android:RecyclerView.ViewHolderから新しいアクティビティを読み込めません

  22. 22

    呼び出し元のアクティビティからPagerAdapterでアイテム数を設定する

  23. 23

    3番目のサブアクティビティから親アクティビティを呼び出すにはどうすればよいですか

  24. 24

    SetResult()をディープリンクの呼び出しアクティビティに戻しますか?

  25. 25

    インテントを介してフラグメントアクティビティからアクティビティを呼び出す

  26. 26

    Androidはダイアログから呼び出しアクティビティに引数を渡します

  27. 27

    アクティビティから別のアクティビティへの文字列の呼び出し

  28. 28

    Androidのインテントから呼び出しアクティビティを取得する

  29. 29

    アクティビティを拡張しないクラスからアクティビティを呼び出す

ホットタグ

アーカイブ