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