安卓移动开发作业二
设计目标
-
使用log展示生命周期的状态变化
-
增加列表项的单项点击功能,点击后实现activity的跳转
-
实现最新的ActivityForResult功能
功能说明
- 通过在MainActivity和ItemActivity中打印生命周期的日志,我们可以在as控制台中看到MainActivity和ItemActivity完整的生命周期
- 在recyclerview中点击就可以进行activity的跳转,并且在跳转的页面有查看按钮
- 点击跳转页面的查看按钮就可以显示回传的数据
代码解析
protected void onStart() {
super.onStart();
Log.i(TAG, "The activity state---->onStart");
}
protected void onRestart() {
super.onRestart();
Log.i(TAG, "The activity state---->onRestart");
}
protected void onResume() {
super.onResume();
Log.i(TAG, "The activity state---->onResume");
}
protected void onPause() {
super.onPause();
Log.i(TAG, "The activity state---->onPause");
}
protected void onStop() {
super.onStop();
Log.i(TAG, "The activity state---->onStop");
}
protected void onDestroy() {
super.onDestroy();
Log.i(TAG, "The activity state---->onDestroy");
}
实现activity生命周期的7个方法log打印日志信息,还有一个是在onCreate方法中打印日志信息
@Override
public void onBindViewHolder(myviewholder myviewholder, int j) {
myviewholder.textView.setText(list.get(j));
myviewholder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(context,ItemActivity.class);
context.startActivity(intent);
}
});
}
RecycleView的点击事件的简单写法,在adapter里面直接对控件做点击事件;
Intent 是一个消息传递对象,通过将 Intent 传递给 startActivity(),就可以启动新的 Activity 实例,实现跳转功能。
public ActivityResultLauncher test = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
new ActivityResultCallback<ActivityResult>(){
@Override
public void onActivityResult(ActivityResult result) {
if (result.getResultCode() == 888){
Log.d("xr","onActivityResultLauncher...");
textView.setText(result.getData().getStringExtra("data"));
}
}
})
textview控件作为数据回传的载体,显示传递的数据内容
public class ResultActivity extends AppCompatActivity {
private static final String TAG ="xr";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
Intent intent=getIntent();
intent.putExtra("data","今天是10月21日,天气是小雨。"+
"现在的时间是: "+ Calendar.getInstance().getTime());
setResult(888,intent);
finish();
}
}
ResultActivity类中,在intent中添加了数据内容,传递给了textview,并且在textview回显出来
运行展示截图
这是部分生命周期的日志情况
如图就实现了列表项的单项点击功能和activity的跳转功能
点击查看天气信息就实现了接收回传值的功能