簡體   English   中英

Recycler View中的意圖?

[英]Intents inside a Recycler View?

任何人都可以幫助我! 無法正常編寫意圖,以便在我的回收站視圖中啟動新活動! 有必要這樣做的新方法嗎? 任何幫助將非常感謝!

這是我的View Holder Code;

    class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    TextView title;
    ImageView icon;

    public MyViewHolder(View itemView, TextView textView) {
        super(itemView);
        title = (TextView) itemView.findViewById(R.id.listText);
        icon = (ImageView) itemView.findViewById(R.id.listImage);
        itemView.setOnClickListener(this);
        title = textView;
    }

    @Override
    public void onClick(View v) {
        if (getPosition() == 0) {
            Toast.makeText(v.getContext(), "Actvity 1", Toast.LENGTH_SHORT).show();
        }
        if (getPosition() == 1) {
            Toast.makeText(v.getContext(), "Actvity 2", Toast.LENGTH_SHORT).show();
        }
    }
  }
}

在viewHolder中初始單擊偵聽器。

/**
 * see {@link <a href="https://youtu.be/imsr8NrIAMs?t=2163">Official Video</a>}
 */
public static class MyViewHolder extends RecyclerView.ViewHolder {

  public MyViewHolder(View itemView) {
    super(itemView);
    //TODO: findViewById or ButterKnife
    ....
    //set item view listener
    itemView.setOnClickListener(new View.OnClickListener() {
      @Override public void onClick(View itemView) {
        if (getAdapterPosition() != RecyclerView.NO_POSITION) {
          Context c = itemView.getContext();
          //TODO: startActivity
        }
      }
    });
    //TODO: set other child views' listener
    ....
  }
}

在自定義適配器中創建自己的構造函數。 例如:

  private Context context;
    public MyRecyclerViewAdapter(Context context,ArrayList<String> yourList){
            this.context=context;
            // further code
    }

並且在調用適配器時只需傳遞上下文的引用,現在您可以通過調用intent

context.startActivity()和所有其他方法。

ViewHolder只是項目特定布局中內部View對象的容器。 它或您的實現的RecyclerView.Adapter都不能直接訪問發送Intent所需的Context對象。 而不是在這里設置OnClickListener ,而是將它放在適配器的onBindViewHolder() 您的適配器可以在其擁有的RecyclerView附加到適配器時得到通知,因此您可以在私有字段中保存對它的引用。 從該視圖中,您可以調用getContext()這樣您就可以創建一個Intent並通過常規方式發送它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM