1.作业要求:
1、请在实验二的基础上,对有recycleView的页面进行点击跳转设计。比如,某一tab页是新闻列表,则点击某一行能跳转到新闻详情页面;
2、本次作业考查的基础原理是对activity的生命周期的理解以及状态转变操作;
关键步骤:
- 创建新的activity并在manifest文件中注册,根据activity的生命周期在新创建的activity引入onCreate,onStart,onPause,onResume,onRestart,onStop,onDestory四个函数(ctrl+O)
- 在recycleAdapter文件中的BindViewHolder函数中对每一个recycleView的item添加点击监听,并创建bundle,intent,将点击的position数据放入bundle中,通过intent将bundle传给已创建好的新的activity中,通过position来获取点击的是哪一个item
- 在新的activity中通过intent获得传过来的intent,并获取里面的bundle数据,数据及完成传输。
核心技术
activity的注册,以及其生命周期的运用。不同activities之间的通过intent的数据通信。
运行结果
第二个activity的代码
public class MainActivity2 extends AppCompatActivity {
TextView textView;
String receiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Toast.makeText(getApplicationContext(), "创建",Toast.LENGTH_SHORT).show();
Log.i("wustwzx ", "创建"); //信息在LogCat控制台输出
}
@Override
protected void onStart() {
super.onStart();
Toast.makeText(getApplicationContext(), "启动", Toast.LENGTH_SHORT).show();
textView=(TextView) findViewById(R.id.textView5);
Intent intent = getIntent();
Bundle data = intent.getBundleExtra("data");
receiver = "" + data.getString("id");
textView.setText("这是第"+ receiver + "选项的界面");
}
@Override
protected void onPause() {
super.onPause();
Toast.makeText(getApplicationContext(), "暂停", Toast.LENGTH_SHORT).show();
}
@Override
protected void onResume() {
super.onResume();
Toast.makeText(getApplicationContext(), "恢复", Toast.LENGTH_SHORT).show();
}
@Override
protected void onRestart() {
super.onRestart();
Toast.makeText(getApplicationContext(), "重启", Toast.LENGTH_SHORT).show();
}
@Override
protected void onStop() {
super.onStop();
Toast.makeText(getApplicationContext(), "停止", Toast.LENGTH_SHORT).show();
}
@Override
protected void onDestroy() {
super.onDestroy();
Toast.makeText(getApplicationContext(), "再见", Toast.LENGTH_SHORT).show();
}
}
recycleView的关键代码
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.textView.setText(list.get(position));
holder.itemView.setOnClickListener(view -> {
Intent intent = new Intent("android.intent.action.MAIN2");
Bundle bundle=new Bundle();
bundle.putString("id",""+position);
intent.putExtra("data",bundle);
context.startActivity(intent);
});
}