20260211

忙活了半天,把安卓的登录注册和主界面写完了,下面依旧展示成果,由于没有使用啥架构,想到啥写啥,所以看起来很乱,应该早点看看架构的。

activity_home.xml

<?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"
    android:orientation="vertical"
    android:id="@+id/main"
    >

    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:background="#03A9F4"
        android:gravity="center"
        android:text="@string/SystemTitle"
        android:textColor="#FFFFFF"
        android:textSize="30sp"
        />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:background="#03A9D4"
        android:orientation="horizontal"
        android:gravity="center_vertical"
        android:paddingLeft="10dp"
        android:paddingRight="10dp">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/homePage"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/welcome"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="欢迎回来,"
            android:textSize="16sp"
            android:gravity="right|center_vertical" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:gravity="center"
        >

        <Button
            android:id="@+id/userInfo"
            android:onClick="toUserInfo"
            android:layout_width="225dp"
            android:layout_height="50dp"
            android:backgroundTint="#03A9F4"
            android:gravity="center"
            android:layout_gravity="center"
            android:text="@string/userInfo"
            android:textColor="#FFFFFF"
            android:textSize="20sp" />
        <Button
            android:id="@+id/test"
            android:onClick="toTest"
            android:layout_marginTop="20dp"
            android:layout_width="225dp"
            android:layout_height="50dp"
            android:backgroundTint="#03A9F4"
            android:gravity="center"
            android:layout_gravity="center"
            android:text="@string/testPage"
            android:textColor="#FFFFFF"
            android:textSize="20sp" />
        <Button
            android:id="@+id/report"
            android:onClick="toReport"
            android:layout_marginTop="20dp"
            android:layout_width="225dp"
            android:layout_height="50dp"
            android:backgroundTint="#03A9F4"
            android:gravity="center"
            android:layout_gravity="center"
            android:text="@string/reportPage"
            android:textColor="#FFFFFF"
            android:textSize="20sp" />
        <Button
            android:id="@+id/quit"
            android:onClick="toLogin"
            android:layout_marginTop="20dp"
            android:layout_width="225dp"
            android:layout_height="50dp"
            android:backgroundTint="#03A9F4"
            android:gravity="center"
            android:layout_gravity="center"
            android:text="@string/quitLogin"
            android:textColor="#FFFFFF"
            android:textSize="20sp" />

    </LinearLayout>
</LinearLayout>

HomeActivity.java

 1 package com.app;
 2 
 3 import android.content.Intent;
 4 import android.content.SharedPreferences;
 5 import android.os.Bundle;
 6 import android.view.View;
 7 import android.widget.TextView;
 8 
 9 import androidx.activity.EdgeToEdge;
10 import androidx.appcompat.app.AppCompatActivity;
11 import androidx.core.graphics.Insets;
12 import androidx.core.view.ViewCompat;
13 import androidx.core.view.WindowInsetsCompat;
14 
15 public class HomeActivity extends AppCompatActivity {
16 
17     private String id;
18     private TextView welcome;
19 
20     @Override
21     protected void onCreate(Bundle savedInstanceState) {
22         super.onCreate(savedInstanceState);
23         EdgeToEdge.enable(this);
24         setContentView(R.layout.activity_home);
25         ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
26             Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
27             v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
28             return insets;
29         });
30 
31         welcome = findViewById(R.id.welcome);
32 
33         SharedPreferences sp = getSharedPreferences("userInfo",MODE_PRIVATE);
34         id = sp.getString("id","");
35         if(id.isEmpty())
36             startActivity(new Intent(HomeActivity.this,LoginActivity.class));
37         else welcome.setText("欢迎回来," + id);
38 
39     }
40     public void toUserInfo(View view){
41         startActivity(new Intent(HomeActivity.this,UserInfoActivity.class));
42     }
43 
44     public void toTest(View view){
45         startActivity(new Intent(HomeActivity.this,TestActivity.class));
46     }
47 
48     public void toReport(View view){
49         startActivity(new Intent(HomeActivity.this,ReportActivity.class));
50     }
51 
52     public void toLogin(View view){
53         SharedPreferences sp = getSharedPreferences("userInfo",MODE_PRIVATE);
54         sp.edit().putString("id","").apply();
55         startActivity(new Intent(HomeActivity.this, LoginActivity.class));
56     }
57 }

activity_login.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout
 3     xmlns:android="http://schemas.android.com/apk/res/android"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:orientation="vertical">
 7     <TextView
 8         android:layout_width="match_parent"
 9         android:layout_height="60dp"
10         android:background="#03A9F4"
11         android:gravity="center"
12         android:text="@string/SystemTitle"
13         android:textColor="#FFFFFF"
14         android:textSize="30sp"
15         />
16     <TextView
17         android:layout_width="match_parent"
18         android:layout_height="30dp"
19         android:text="@string/login"
20         android:background="#03A9D4"
21         android:gravity="center_vertical"
22         android:paddingLeft="10dp"
23         />
24     <LinearLayout
25         android:layout_width="match_parent"
26         android:layout_height="match_parent"
27         android:orientation="vertical"
28         android:gravity="center"
29         >
30         <TextView
31             android:id="@+id/tip"
32             android:layout_width="wrap_content"
33             android:layout_height="wrap_content"
34             android:paddingBottom="10dp" />
35         <TextView
36             android:layout_width="250dp"
37             android:layout_height="40dp"
38             android:gravity="center"
39             android:background="#03A9F4"
40             android:text="@string/login"
41             android:textColor="@color/white"
42             android:textSize="20sp"
43             />
44         <EditText
45             android:id="@+id/userId"
46             android:drawablePadding="5dp"
47             android:hint="@string/idText"
48             android:inputType="text"
49             android:drawableLeft="@drawable/baseline_account_circle_24"
50             android:layout_width="250dp"
51             android:layout_height="50dp"/>
52         <EditText
53             android:id="@+id/password"
54             android:drawablePadding="5dp"
55             android:hint="@string/passwordText"
56             android:inputType="textPassword"
57             android:drawableLeft="@drawable/baseline_lock_24"
58             android:layout_width="250dp"
59             android:layout_height="50dp"/>
60         <LinearLayout
61             android:layout_width="wrap_content"
62             android:layout_height="wrap_content"
63             android:orientation="horizontal">
64             <Button
65                 android:id="@+id/login"
66                 android:text="@string/login"
67                 android:textSize="15sp"
68                 android:layout_width="110dp"
69                 android:layout_height="40dp"
70                 android:backgroundTint="#03A9F4"/>
71             <Button
72                 android:id="@+id/register"
73                 android:text="@string/register"
74                 android:textSize="15sp"
75                 android:layout_marginLeft="20dp"
76                 android:layout_width="110dp"
77                 android:layout_height="40dp"
78                 android:backgroundTint="#03A9F4"/>
79         </LinearLayout>
80     </LinearLayout>
81 
82     </LinearLayout>

LoginActivity

 1 package com.app;
 2 
 3 import android.content.Intent;
 4 import android.content.SharedPreferences;
 5 import android.os.Bundle;
 6 import android.view.View;
 7 import android.widget.Button;
 8 import android.widget.EditText;
 9 import android.widget.TextView;
10 
11 import androidx.appcompat.app.AppCompatActivity;
12 
13 import com.app.api.UserService;
14 
15 import java.io.IOException;
16 
17 import okhttp3.ResponseBody;
18 import retrofit2.Call;
19 import retrofit2.Callback;
20 import retrofit2.Response;
21 import retrofit2.Retrofit;
22 import retrofit2.converter.gson.GsonConverterFactory;
23 
24 public class LoginActivity extends AppCompatActivity {
25 
26     private Retrofit retrofit;
27     private UserService userService;
28     private TextView tip;
29     private Button login;
30     private Button register;
31     private EditText idET;
32     private EditText passwordET;
33 
34     @Override
35     protected void onCreate(Bundle savedInstanceState) {
36         super.onCreate(savedInstanceState);
37         setContentView(R.layout.activity_login);
38 
39         retrofit = new Retrofit.Builder()
40                 .baseUrl("http://192.168.0.2:8080")
41                 .addConverterFactory(GsonConverterFactory.create())
42                 .build();
43         userService = retrofit.create(UserService.class);
44         tip = findViewById(R.id.tip);
45         login = findViewById(R.id.login);
46         register = findViewById(R.id.register);
47         idET = findViewById(R.id.userId);
48         passwordET = findViewById(R.id.password);
49 
50         login.setOnClickListener(new View.OnClickListener() {
51             @Override
52             public void onClick(View v) {
53                 String id = idET.getText().toString();
54                 String password = passwordET.getText().toString();
55 
56                 Call<ResponseBody> call = userService.login(id,password);
57                 call.enqueue(new Callback<ResponseBody>() {
58                     @Override
59                     public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
60                         try {
61                             String result = response.body().string();
62                             if(result.equals("0")){
63                                 tip.setText(R.string.loginSuccess);
64                                 tip.setTextColor(getResources().getColor(R.color.green));
65 
66                                 SharedPreferences sp = getSharedPreferences("userInfo",MODE_PRIVATE);
67                                 sp.edit().putString("id",id).apply();
68 
69                                 startActivity(new Intent(LoginActivity.this,HomeActivity.class));
70                             }else{
71                                 tip.setText(R.string.loginFail);
72                                 tip.setTextColor(getResources().getColor(R.color.red));
73                             }
74                         }catch (IOException e){
75                             e.printStackTrace();
76                         }
77                     }
78 
79                     @Override
80                     public void onFailure(Call<ResponseBody> call, Throwable t) {
81 
82                     }
83                 });
84             }
85         });
86 
87         register.setOnClickListener(new View.OnClickListener() {
88             @Override
89             public void onClick(View v) {
90                 startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
91             }
92         });
93     }
94 }

activity_register.xml

<?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"
    android:orientation="vertical">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:background="#03A9F4"
        android:gravity="center"
        android:text="@string/SystemTitle"
        android:textColor="#FFFFFF"
        android:textSize="30sp"
        />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:text="@string/register"
        android:background="#03A9D4"
        android:gravity="center_vertical"
        android:paddingLeft="10dp"
        />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:gravity="center"
        >
        <TextView
            android:id="@+id/tip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingBottom="10dp" />
        <TextView
            android:layout_width="250dp"
            android:layout_height="40dp"
            android:gravity="center"
            android:background="#03A9F4"
            android:text="@string/register"
            android:textColor="@color/white"
            android:textSize="20sp"
            />
        <EditText
            android:id="@+id/userId"
            android:drawablePadding="5dp"
            android:hint="@string/idText"
            android:inputType="text"
            android:drawableLeft="@drawable/baseline_account_circle_24"
            android:layout_width="250dp"
            android:layout_height="50dp"/>
        <EditText
            android:id="@+id/password"
            android:drawablePadding="5dp"
            android:hint="@string/passwordText"
            android:inputType="textPassword"
            android:drawableLeft="@drawable/baseline_lock_24"
            android:layout_width="250dp"
            android:layout_height="50dp"/>
        <EditText
            android:id="@+id/confirm"
            android:drawablePadding="5dp"
            android:hint="@string/passwordConfirm"
            android:inputType="textPassword"
            android:drawableLeft="@drawable/baseline_lock_24"
            android:layout_width="250dp"
            android:layout_height="50dp"/>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <Button
                android:id="@+id/returnLogin"
                android:text="@string/returnLogin"
                android:textSize="15sp"
                android:layout_width="110dp"
                android:layout_height="40dp"
                android:backgroundTint="#03A9F4"/>
            <Button
                android:id="@+id/register"
                android:text="@string/register"
                android:textSize="15sp"
                android:layout_marginLeft="20dp"
                android:layout_width="110dp"
                android:layout_height="40dp"
                android:backgroundTint="#03A9F4"/>
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

RegisterActivity.java

  1 package com.app;
  2 
  3 import android.content.Intent;
  4 import android.content.SharedPreferences;
  5 import android.os.Bundle;
  6 import android.view.View;
  7 import android.widget.Button;
  8 import android.widget.EditText;
  9 import android.widget.TextView;
 10 
 11 import androidx.appcompat.app.AppCompatActivity;
 12 
 13 import com.app.api.AbilityService;
 14 import com.app.api.UserService;
 15 
 16 import java.io.IOException;
 17 
 18 import okhttp3.ResponseBody;
 19 import retrofit2.Call;
 20 import retrofit2.Callback;
 21 import retrofit2.Response;
 22 import retrofit2.Retrofit;
 23 import retrofit2.converter.gson.GsonConverterFactory;
 24 
 25 public class RegisterActivity extends AppCompatActivity {
 26 
 27     private Retrofit retrofit;
 28     private UserService userService;
 29     private AbilityService abilityService;
 30     private TextView tip;
 31     private Button returnLogin;
 32     private Button register;
 33     private EditText idET;
 34     private EditText passwordET;
 35     private EditText confirmET;
 36 
 37     @Override
 38     protected void onCreate( Bundle savedInstanceState) {
 39         super.onCreate(savedInstanceState);
 40         setContentView(R.layout.activity_register);
 41 
 42         retrofit = new Retrofit.Builder().baseUrl("http://192.168.0.2:8080")
 43                 .addConverterFactory(GsonConverterFactory.create())
 44                 .build();
 45         userService = retrofit.create(UserService.class);
 46         abilityService = retrofit.create(AbilityService.class);
 47 
 48         tip = findViewById(R.id.tip);
 49         returnLogin = findViewById(R.id.returnLogin);
 50         register = findViewById(R.id.register);
 51         idET = findViewById(R.id.userId);
 52         passwordET = findViewById(R.id.password);
 53         confirmET = findViewById(R.id.confirm);
 54 
 55         returnLogin.setOnClickListener(new View.OnClickListener() {
 56             @Override
 57             public void onClick(View v) {
 58                 startActivity(new Intent(RegisterActivity.this,LoginActivity.class));
 59             }
 60         });
 61 
 62         register.setOnClickListener(new View.OnClickListener() {
 63             @Override
 64             public void onClick(View v) {
 65                 String id = idET.getText().toString();
 66                 String password = passwordET.getText().toString();
 67                 String confirm = confirmET.getText().toString();
 68                 if(!password.isEmpty() &&password.equals(confirm)){
 69                     Call<ResponseBody> call = userService.register(id,password);
 70                     call.enqueue(new Callback<ResponseBody>() {
 71                         @Override
 72                         public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
 73                             try {
 74                                 String result = response.body().string();
 75                                 System.out.println(result);
 76                                 if (result.equals("0")) {
 77                                     addAbility(id);
 78                                     tip.setText(R.string.registerSuccess);
 79                                     tip.setTextColor(getResources().getColor(R.color.green));
 80 
 81                                     SharedPreferences sp = getSharedPreferences("userInfo",MODE_PRIVATE);
 82                                     sp.edit().putString("id",id).apply();
 83 
 84                                     startActivity(new Intent(RegisterActivity.this, HomeActivity.class));
 85                                 } else {
 86                                     tip.setText(R.string.registerFail);
 87                                     tip.setTextColor(getResources().getColor(R.color.red));
 88                                 }
 89                             }catch (IOException e){
 90                                 e.printStackTrace();
 91                             }
 92                         }
 93 
 94                         @Override
 95                         public void onFailure(Call<ResponseBody> call, Throwable t) {
 96 
 97                         }
 98                     });
 99                 }
100             }
101         });
102     }
103 
104     public void addAbility(String id){
105         Call<ResponseBody> call = abilityService.addAbility(id);
106         call.enqueue(new Callback<ResponseBody>() {
107             @Override
108             public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
109 
110             }
111 
112             @Override
113             public void onFailure(Call<ResponseBody> call, Throwable t) {
114 
115             }
116         });
117     }
118 }

 AbilityService,UserService和string.xml因为过于简单就不展示了

posted @ 2026-02-11 14:52  Lee_sz  阅读(4)  评论(0)    收藏  举报