只提供代码,思路想不起来了。
目录
主函数java文件夹代码
friendList
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.icu.text.UnicodeMatcher;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class friendList extends AppCompatActivity implements View.OnClickListener,
AdapterView.OnItemClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_friend_list);
initView();
initData();
}
//声明组件变量
private Button btn1;
private ListView listView;
//初始化组件
private void initView(){
btn1 = findViewById(R.id.btn1);
listView = findViewById(R.id.listview);
btn1.setOnClickListener(this);
}
//数组数据源
private int[] iPic = {R.drawable.lake,R.drawable.medium,R.drawable.night,
R.drawable.rest,R.drawable.science,R.drawable.door};
private String[] name = {"海虎","奥加","天道","白首男","白次男","白武男","刹暗天"};
private String[] content = {"我是白军浪","我是杀人鲸","我是大白鲨","我是天国帝皇",
"我是大地皇帝","我是帝者战神","我是仁者暗帝"};
ArrayList<Map<String,Object>>mArrayList;
//数据初始化
private void initData(){
mArrayList = new ArrayList<>();//数据打包
for(int i = 0;i<iPic.length;i++){
Map<String,Object> map = new HashMap<>();
map.put("image",iPic[i]);
map.put("name",name[i]);
map.put("content",content[i]);
mArrayList.add(map);
}
SimpleAdapter simpleAdapter = new SimpleAdapter(this,mArrayList,R.layout.list_layout,
new String[]{"image","name","content"},new int[]{R.id.img,R.id.text1,R.id.text2});
listView.setAdapter(simpleAdapter);
}
@Override
public void onClick(View v) {
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(this, "被单击了", Toast.LENGTH_SHORT).show();
}
}
MainActivity
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 预定义变量
Spinner spinner;
List<String> listForSpinner = new ArrayList<>();
ArrayAdapter<String> adapterForSpinner;
// 变量初始化
spinner = findViewById(R.id.spinner);// 引用Spinner控件
// 给字符串数组赋初值
listForSpinner.add("中文");
listForSpinner.add("日语");
listForSpinner.add("英语");
listForSpinner.add("俄语");
// 设置适配器
adapterForSpinner = new ArrayAdapter<>(MainActivity.this, R.layout.item_for_custom_spinner, listForSpinner);
spinner.setAdapter(adapterForSpinner);
Toast toast = Toast.makeText(getApplicationContext(), "default toast", Toast.LENGTH_SHORT);
final int[] flag = {0};
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
if (flag[0] == 0){
flag[0] = flag[0] + 1;
return;
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
initView();
}
private Button button1;
private Button button2;
void initView(){
button1 = findViewById(R.id.button1);//通过findViewById()方法绑定Botton组件
button2 = findViewById(R.id.button2);//通过findViewById()方法绑定Botton组件
button1.setOnClickListener(this);
button2.setOnClickListener(this);
}
private void jumpToMainActivity2(){
Intent intent = new Intent(this, MainActivity2.class);//使用快捷键“Ait+Enter"
startActivity(intent);//启动意图
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.button1:
jumpToMainActivity2();//登录
break;
case R.id.button2:
jumpToMainActivity2();//注册
break;
default:
break;
}
}
}
MainActivity2
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import java.lang.reflect.Array;
public class MainActivity2 extends AppCompatActivity implements View.OnClickListener,
CompoundButton.OnCheckedChangeListener, AdapterView.OnItemSelectedListener {
String name = "123";//曾经注册的账户号
String password = "123456";//曾经注册时的登录密码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
initView();
initData();
}
//声明变量,
private Button button4; //登录
private Button button3; //取消
private CheckBox checkBox1;
private Spinner spinner;
private EditText mEditText1;
private EditText mEditText2;
//初始化变量
void initView(){
button4= findViewById(R.id.button4);//通过findViewById()方法绑定Botton组件
button3= findViewById(R.id.button3);//通过findViewById()方法绑定Botton组件
checkBox1 = findViewById(R.id.checkbox1);
mEditText1=findViewById(R.id.editTextTextPersonName2);
mEditText2=findViewById(R.id.editTextTextPassword);
button4.setOnClickListener(this);
button3.setOnClickListener(this);
checkBox1.setOnCheckedChangeListener(this);
spinner=findViewById(R.id.spinner1);
spinner.setOnItemSelectedListener(this);
}
//声明两个变量,用来读取文本输入框中的内容
private String editText1;
private String editText2;
//此方法实现从一个活动跳转到另一个活动
private void jumpToMainActivity3(){
Intent intent = new Intent(this, MainActivity3.class);//使用快捷键“Ait+Enter"
startActivity(intent);//启动意图
}
private void jumpToMainActivity1(){
Intent intent = new Intent(this, MainActivity.class);//使用快捷键“Ait+Enter"
startActivity(intent);//启动意图
}
@Override
public void onClick(View view){
switch (view.getId()){
case R.id.button4:
//跳转之前
editText1 = mEditText1.getText().toString().trim();//获取用户名
editText2 = mEditText2.getText().toString().trim();//获取密码
if (editText1.equals(name)) {
if (editText2.equals(password)) {
Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
jumpToMainActivity3();
} else {
Toast.makeText(this, "请输入正确的密码", Toast.LENGTH_SHORT).show();
}
}else {
Toast.makeText(this, "请输入正确的用户名或注册", Toast.LENGTH_SHORT).show();
}
break;
case R.id.button3:
jumpToMainActivity1();//取消
break;
default:
break;
}
}
@Override
public void onCheckedChanged(CompoundButton compoundButton,boolean b){
checkBox1=(CheckBox) compoundButton;
String strMsg = "";
if (b){
strMsg = String.format("checkbox组件被选中了",checkBox1.getText(),checkBox1.getId());
}else {
strMsg = String.format("checkbox组件被取消了",checkBox1.getText(),checkBox1.getId());
}
Toast.makeText(this, strMsg, Toast.LENGTH_SHORT).show();
}
//数据源
private String[] city = {"中国-柳州","中国-上海","中国-广州","中国-台湾","中国-香港","中国-曹县"};
//数据初始化
private void initData(){
//初始化适配器
ArrayAdapter<String>mArrayAdapter=new ArrayAdapter<String>(this, androidx.appcompat.
R.layout.support_simple_spinner_dropdown_item,city);
spinner.setPrompt("国家/地区");//标题
spinner.setAdapter(mArrayAdapter);//组件与适配器绑定
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int i, long id) {
String strMsg=String.format("选中的是",i+1,city);
Toast.makeText(this, strMsg, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
MainActivity3
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ProgressBar;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity3 extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
initView();
autoTncrease();
}
private ProgressBar progressBar;
private TextView mTextView;
private Switch switch1;
private void initView() {
mTextView = findViewById(R.id.textView9);
progressBar = findViewById(R.id.progressBar);
switch1=findViewById(R.id.switch1);
switch1.setOnCheckedChangeListener(this);
}
//声明一个变量,用来表示当前进度的值(0-100)
private int iProgress = 0;
//自动增加进度方法
private void autoTncrease(){
//建立子线程
Thread thread=new Thread(new Runnable() {
@Override
public void run() {
while (iProgress<=100){
iProgress +=10;
if (iProgress >100){
iProgress = 0;
jumpTofriendList();
return;
}
runOnUiThread(new Runnable() {
@Override
public void run() {
progressBar.setProgress(iProgress);//设置进度条的当前进度值
mTextView.setText("进度:"+iProgress+"%");//使用组件来展示当前进度值
}
});
try {
Thread.sleep(200);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
});
thread.start();//启动子线程
}
private void jumpTofriendList(){
Intent intent = new Intent(this, friendList.class);//使用快捷键“Ait+Enter"
startActivity(intent);//启动意图
}
@Override
public void onCheckedChanged(CompoundButton compoundButton,boolean b){
switch1=(Switch) compoundButton;
String strMsg = "";
if (b){
strMsg = String.format("组件被选中了",switch1.getText(),switch1.getId());
}else {
strMsg = String.format("组件被取消了",switch1.getText(),switch1.getId());
}
Toast.makeText(this, strMsg, Toast.LENGTH_SHORT).show();
}
}
drawable文件夹
看资源包,也可自己导入
layout文件夹
activity_friend_list
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".friendList">
<LinearLayout
android:id="@id/line1"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:background="@color/gray"
>
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回"
android:textColor="@color/green"
android:backgroundTint="@color/gray"
/>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="微信"
android:textSize="16dp"
android:layout_marginStart="110dp"
/>
<androidx.appcompat.widget.SearchView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="80dp"
/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/jiahao"
/>
</LinearLayout>
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="620dp"/>
<LinearLayout
android:id="@+id/line2"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:background="@color/gray"
>
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="微信"
android:backgroundTint="@color/gray"
android:layout_marginStart="15dp"
/>
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="通讯"
android:backgroundTint="@color/gray"
android:layout_marginStart="15dp"
/>
<Button
android:id="@+id/btn4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发现"
android:backgroundTint="@color/gray"
android:layout_marginStart="15dp"
/>
<Button
android:id="@+id/btn5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我"
android:backgroundTint="@color/gray"
android:layout_marginStart="15dp"
/>
</LinearLayout>
</LinearLayout>
activity_main
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/wxdl"
tools:context=".MainActivity">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/green"
android:text="登录"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.167"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.945" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/white"
android:text="注册"
android:textColor="@color/black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.58"
app:layout_constraintStart_toEndOf="@+id/button1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.944" />
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/green"
android:entries="@array/spinner"
android:minHeight="48dp"
android:spinnerMode="dialog"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.922"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.048"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
activity_main2
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity2">
<Button
android:id="@+id/button3"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/white"
android:text="取消"
android:textColor="@color/green"
android:textSize="16dp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="100dp">
</LinearLayout>
<Spinner
android:id="@+id/spinner1"
android:layout_width="300dp"
android:layout_height="50dp"
android:layout_gravity="center"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="50dp"
android:orientation="horizontal"
>
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="账户:"
android:textSize="20dp"
android:gravity="center"
/>
<EditText
android:id="@+id/editTextTextPersonName2"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="用户名/手机号"
android:textSize="20dp"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="50dp"
android:orientation="horizontal"
>
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="密码:"
android:textSize="20dp"
android:gravity="center"
/>
<EditText
android:id="@+id/editTextTextPassword"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="请输入密码"
android:textSize="20dp"
android:inputType="textPassword"
/>
</LinearLayout>
<CheckBox
android:id="@+id/checkbox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginStart="280dp"
android:text="记住此账户密码"
>
</CheckBox>
<Button
android:id="@+id/button4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="登录"
android:backgroundTint="@color/green"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="30dp"
android:gravity="center"
android:text="用短信验证码登录"/>
<TextView
android:id="@+id/textView5"
android:layout_width="410dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="220dp"
android:backgroundTint="@color/gray"
android:padding="2dp"
android:text=" 登录遇到问题?| 用其他方式登录"
android:textSize="20dp" />
</LinearLayout>
activity_main3
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="391dp"
android:layout_height="50dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.976" />
<TextView
android:id="@+id/textView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="进度"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.123" />
<Switch
android:id="@+id/switch1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开启游戏模式"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
item_for_custom_spinner
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center"
android:text="语言"
android:textColor="@color/white"
android:textSize="18dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:singleLine="true"
android:ellipsize="marquee"/>
list_layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/img"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@mipmap/ic_launcher"
android:layout_margin="5dp"
/>
<LinearLayout
android:id="@+id/line4"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_margin="5dp"
android:orientation="vertical"
android:layout_marginEnd="5dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="45dp"
android:text="名字"
android:textSize="20dp"
/>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="45dp"
android:text="内容"
android:textSize="16dp"
/>
</LinearLayout>
</LinearLayout>
AndroidManifest(main文件夹)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.MyApplication"
tools:targetApi="31">
<activity
android:name=".friendList"
android:exported="false" />
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity2"></activity>
<activity android:name=".MainActivity3"></activity>
</application>
</manifest>