如何从recyclerview项目打开活动?

时间:2019-08-10 18:50:32

标签: android android-recyclerview onclicklistener

我正在尝试从RecyclerView打开另一个活动。我不了解如何使用getattr(sf, "Lead").describe() 方法来启动新活动。我已使用该方法中的另一个按钮打开一个新活动,我想要做的就是打开一个相同的活动,但只是一个不同的活动。

我尝试将sendMessage()方法插入侦听器。我已经尝试过使用意图。

sendMessage()

Recycler View适配器:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    buildRecyclerView();
}

public void buildRecyclerView(){
    mRecyclerView = findViewById(R.id.rvGoals);
    mRecyclerView.setHasFixedSize(true);
    mLayoutManager = new LinearLayoutManager(this);
    mAdapter = new RVAdapter(mGoal);

    mRecyclerView.setLayoutManager(mLayoutManager);
    mRecyclerView.setAdapter(mAdapter);

    mAdapter.setOnItemClickListener(new RVAdapter.OnItemClickListener() {
        @Override
        public void onItemClick(int position) {
            mDrawerLayout = findViewById(R.id.nav_view);
            mDrawerLayout.openDrawer(Gravity.START);
        }

        @Override
        public void onAddClick(int position) {
            sendMessage();
        }
    });

public void sendMessage(View view) {
    Intent intent = new Intent(this,MainGoalInfo.class);
    startActivityForResult(intent,1);
}

2 个答案:

答案 0 :(得分:0)

您可以在setOnClickListener()的{​​{1}}方法内执行所需的操作。您可以使用活动中的上下文初始化适配器:

GoalViewHolder

Recycler View适配器:

mAdapter = new RVAdapter(mGoal, this);

在您的public class RVAdapter extends RecyclerView.Adapter<RVAdapter.GoalViewHolder> { private Context mContext; ... public RVAdapter(List<Goals> goalsRVA, Context mContext){ this.goalsRVA=goalsRVA; this.mContext=mContext } 中:

GoalViewHolder

答案 1 :(得分:-1)

您可以从onbindViewHolder内部进行操作

您将致电

goalViewHolder。 itemView.setOnClickListener(new View.OnClickListener(){@Override public void onClick(View view){ //在这里您将开始活动,您需要一个上下文 mContext.startactivity

}}}});

在适配器构造函数中发送上下文