单击RecyclerView项目启动新活动

时间:2017-06-28 04:33:45

标签: android android-activity floating-action-button

我的主要活动有一个FAB。当用户点击时,新活动打开,用户输入详细信息,如姓名,地址,上传图像和其他一些内容。我会获取此数据并仅显示名称和地址作为recyclerview的项目。因此,当用户点击该项目时,我想打开一个显示所有值的新活动。 每次用户点击Fab并输入详细信息时,如何创建新活动?

2 个答案:

答案 0 :(得分:1)

您可以在RecyclerView项目上编写回调。 请参考以下代码。

在适配器中:

private RecyclerViewListeners recyclerViewListeners;

 public interface RecyclerViewListeners {
        public abstract void onRecycleItemClick(List<MovieDataModel> moviesDataList, int position);
    }

    public void setCallBack(RecyclerViewListeners callBack) {
        this.recyclerViewListeners = callBack;
    } 

在onBindViewHolder()方法中:

 holder.movieLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                recyclerViewListeners.onRecycleItemClick(movies, position);
            }
        });

在java类中重写监听器,如下所示并启动新活动:

 MoviesAdapter moviesAdapter = new MoviesAdapter(movieDataModels, R.layout.movie_cell, getApplicationContext());
                recyclerView.setAdapter(moviesAdapter);
                moviesAdapter.setCallBack(new MoviesAdapter.RecyclerViewListeners() {
                    @Override
                    public void onRecycleItemClick(List<MovieDataModel> moviesDataList, int position) {
                        Intent intent = new Intent(MovieListActivity.this, MoviesDeatailsActivity.class);
                        Bundle bundle = new Bundle();
                        bundle.putString("Title", moviesDataList.get(position).getTitle());
                        bundle.putString("Description", moviesDataList.get(position).getOverview());
                        bundle.putInt("Id", moviesDataList.get(position).getId());
                        bundle.putDouble("Popularity", moviesDataList.get(position).getPopularity());
                        intent.putExtras(bundle);
                        startActivity(intent);
                    }
                });

请根据您的要求进行更改。

答案 1 :(得分:1)

您可以通过意图启动新活动,并将要显示的数据放在该意向调用中的新活动

发送数据并在fab按钮点击事件中打开新活动

Intent intent = new Intent(this, NewActivity.class);
EditText editText = (EditText) findViewById(R.id.editText);
String message = editText.getText().toString();
intent.putExtra("Key_Msg", message);
startActivity(intent);

您可以在onCreate方法

中检索来自上一个活动的新活动中的数据
Intent intent = getIntent();
String message = intent.getStringExtra("Key_Msg");

// Capture the layout's TextView and set the string as its text
TextView textView = (TextView) findViewById(R.id.textView);
textView.setText(message);

您可以详细了解如何开始活动here