- 界面布局
- single
- multi
- items
- 页面跳转
- 接收传值
- 图标来源:阿里巴巴矢量图标库
- 代码部分
package com.example.lifecircle_activs;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button btn_single,btn_multi,btn_items,btn_link;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("activs","onCreate.-----1");
final String [] lan = {"c","c++","java","python","html","js"};
final boolean [] lan_used = {true,false,true,true,true,true};
btn_single = findViewById(R.id.button);
btn_multi = findViewById(R.id.button2);
btn_items = findViewById(R.id.button3);
btn_link = findViewById(R.id.button4);
//1.SingleChoiceItems
btn_single.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Single Choice Items Test"+"\n"+"选出你最喜欢的语言");
builder.setIcon(R.drawable.single);
builder.setSingleChoiceItems(lan, 2, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"你最喜欢的语言是:"+lan[which],Toast.LENGTH_LONG).show();
}
});
builder.create().show();
}
});
//2.multi
btn_multi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Single Choice Items Test"+"\n"+"选出你使用过的语言");
builder.setIcon(R.drawable.multi);
builder.setMultiChoiceItems(lan, lan_used, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
Toast.makeText(MainActivity.this,lan[which]+":"+isChecked,Toast.LENGTH_LONG).show();
}
});
builder.create().show();
}
});
//3.Items
btn_items.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Items Test"+"\n"+"选择使用时间最长的语言");
builder.setIcon(R.drawable.items);
builder.setItems(lan, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"你使用时间最长的语言是:"+lan[which],Toast.LENGTH_LONG).show();
}
});
builder.create().show();
}
});
//4.link
btn_link.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
// builder.setTitle("请输入账号密码");
// builder.setIcon(R.drawable.link);
// LayoutInflater inflater = MainActivity.this.getLayoutInflater();
// View loginView = inflater.inflate(R.layout.login_view,null);
// builder.setView(loginView);
builder.setTitle("点击是登录,点击否退出");
builder.setIcon(R.drawable.link);
builder.setPositiveButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(MainActivity.this,Main2Activity.class);
Bundle bundle = new Bundle();
bundle.putStringArray("lan",lan);
intent.putExtras(bundle);
startActivity(intent);
}
});
builder.setNegativeButton("否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MainActivity.this.finish();
}
});
builder.create().show();
}
});
}
@Override
protected void onStart() {
super.onStart();
Log.d("activs","onStart.-----1");
}
@Override
protected void onStop() {
super.onStop();
Log.d("activs","onStop.-----1");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d("activs","onDestroy.-----1");
}
@Override
protected void onPause() {
super.onPause();
Log.d("activs","onPause.-----1");
}
@Override
protected void onResume() {
super.onResume();
Log.d("activs","onResume.-----1");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d("activs","onRestart.-----1");
}
}
package com.example.lifecircle_activs;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Log.d("activs","onCreate.-----2");
Intent intent = this.getIntent();
String [] lan_get = intent.getStringArrayExtra("lan");
TextView tv = findViewById(R.id.textView);
for (String s :lan_get){
tv.append("\n"+s+"-----language");
}
}
@Override
protected void onStart() {
super.onStart();
Log.d("activs","onStart.-----2");
}
@Override
protected void onStop() {
super.onStop();
Log.d("activs","onStop.-----2");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d("activs","onDestroy.-----2");
}
@Override
protected void onPause() {
super.onPause();
Log.d("activs","onPause.-----2");
}
@Override
protected void onResume() {
super.onResume();
Log.d("activs","onResume.-----2");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d("activs","onRestart.-----2");
}
}
打开app:
2020-05-10 17:01:15.015 32135-32135/? D/activs: onCreate.-----1
2020-05-10 17:01:15.021 32135-32135/? D/activs: onStart.-----1
2020-05-10 17:01:15.024 32135-32135/? D/activs: onResume.-----1
点击跳转按钮并选择是:
2020-05-10 17:01:52.172 32135-32135/com.example.lifecircle_activs D/activs: onPause.-----1
2020-05-10 17:01:52.209 32135-32135/com.example.lifecircle_activs D/activs: onCreate.-----2
2020-05-10 17:01:52.226 32135-32135/com.example.lifecircle_activs D/activs: onStart.-----2
2020-05-10 17:01:52.228 32135-32135/com.example.lifecircle_activs D/activs: onResume.-----2
2020-05-10 17:01:52.828 32135-32135/com.example.lifecircle_activs D/activs: onStop.-----1
点击返回键退回到a1:
2020-05-10 17:03:43.882 32135-32135/com.example.lifecircle_activs D/activs: onPause.-----2
2020-05-10 17:03:43.893 32135-32135/com.example.lifecircle_activs D/activs: onRestart.-----1
2020-05-10 17:03:43.893 32135-32135/com.example.lifecircle_activs D/activs: onStart.-----1
2020-05-10 17:03:43.895 32135-32135/com.example.lifecircle_activs D/activs: onResume.-----1
2020-05-10 17:03:44.475 32135-32135/com.example.lifecircle_activs D/activs: onStop.-----2
2020-05-10 17:03:44.477 32135-32135/com.example.lifecircle_activs D/activs: onDestroy.-----2
(以上未在ac2中添加跳转1的代码)
- 出现的问题:
- 多选中需要boolean[],长度需要和string[]长度相同;
- 想在activity的跳转中加布局来输入账号密码,只有账号密码相同时才能跳转,但是R.layout.*就是一直红的报错,尝试删除、创建了好几次emmm。可能是布局问题???
- 刚开始只想做两个activity的跳转加生命周期的输出,但是程序会崩溃,而且有趣的是代码没错,那就是逻辑出了问题?应该不会吧,只是加了log来输出生命周期阶段调用的函数呀。
- 有空再整生命周期啦,就是几个方法的重写罢了。