冲刺6

1.写了一部分的安卓。

2.安卓的网络功能,和Java后端的有些不一样,安卓里面需要用的是具体的ip地址,不能是localhost。

3.写完了安卓的功能。

4.

package com.example.medicalretrieval;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.example.medicalretrieval.pojo.User;
import com.example.medicalretrieval.utils.Result;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

import java.io.IOException;

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class LoginActivity extends AppCompatActivity implements View.OnClickListener {

    private EditText account;
    private EditText password;
    private TextView register;
    private TextView forgetPassword;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        account = findViewById(R.id.input_account);
        password = findViewById(R.id.input_password);

        Button login = findViewById(R.id.login);
        register = findViewById(R.id.register);
        forgetPassword = findViewById(R.id.forget_password);

        login.setOnClickListener(this);
        register.setOnClickListener(this);
        forgetPassword.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Intent intent;
        switch (v.getId()){
            case R.id.login:
                String acc = account.getText().toString();
                String pass = password.getText().toString();
                login(acc,pass);
                break;
            case R.id.register:
                intent = new Intent(this,RegisterActivity.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);
                System.out.println("注册被点击");
                break;
            case R.id.forget_password:
                break;
        }

    }

    private void login(String acc,String pass) {
        new Thread(() ->{
            OkHttpClient client = new OkHttpClient();
            Request request = new Request.Builder()
                    .url("http://192.168.43.144:8080/user/?account="+acc+"&password="+pass+"")
                    .get()
                    .build();
            try {
                Response response = client.newCall(request).execute();
                String Data = response.body().string();

                Result result;
                result = new Gson().fromJson(Data,Result.class);
                if (result.getCode()==1){
                    JsonElement jsonElement = JsonParser.parseString(Data);
                    JsonObject jsonObject = jsonElement.getAsJsonObject();
                    User user = new Gson().fromJson(jsonObject.getAsJsonObject("data"),User.class);
                    MyApplication.getInstance().application.put("user",user);
                    Intent intent = new Intent(LoginActivity.this, ViewPagerActivity.class);
                    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    startActivity(intent);
                }else{
                    Toast.makeText(this, "账号或密码错误", Toast.LENGTH_SHORT).show();
                }
                
            } catch (IOException e) {
                e.printStackTrace();
            }

        }).start();
    }
    private void showData(String data){
        runOnUiThread(() -> {
            Intent intent = new Intent(LoginActivity.this, ViewPagerActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            //登录成功
            System.out.println(data);
            MyApplication.getInstance().application.put("account","");//登录信息

            startActivity(intent);

        });
    }

}
package com.example.medicalretrieval;

import android.app.Application;
import android.content.res.Configuration;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

import androidx.annotation.NonNull;
import androidx.room.Room;
import androidx.room.RoomDatabase;
import androidx.sqlite.db.SupportSQLiteDatabase;

import com.example.medicalretrieval.dataBase.BrowsingHistoryDataBase;
import com.example.medicalretrieval.dataBase.DownloadHistoryDataBase;
import com.example.medicalretrieval.dataBase.PdfItemDataBase;
import com.example.medicalretrieval.dataBase.UserDataBase;
import com.example.medicalretrieval.pojo.User;

import java.util.HashMap;
import java.util.List;

public class MyApplication extends Application {
    private static MyApplication mApp;

    public HashMap<String,Object> application = new HashMap<>();
    private final String IP = "http://192.168.43.144:8080";
    private UserDataBase userDataBase;
    private PdfItemDataBase pdfItemDataBase;
    private BrowsingHistoryDataBase browsingHistoryDataBase;
    private DownloadHistoryDataBase downloadHistoryDataBase;


    public static MyApplication getInstance(){
        if(mApp == null){
            mApp = new MyApplication();
        }
        return mApp;
    }

    @Override
    public void onCreate() {

        super.onCreate();
        mApp=this;
        Log.d("ning", "onCreate: ");
        userDataBase = Room.databaseBuilder(this,UserDataBase.class,"user")
                .addMigrations()
                .allowMainThreadQueries()
                .build();

        pdfItemDataBase = Room.databaseBuilder(this,PdfItemDataBase.class,"pdfItem")
                .addMigrations()
                .allowMainThreadQueries()
                .build();

        browsingHistoryDataBase = Room.databaseBuilder(this,BrowsingHistoryDataBase.class,"browsingHistory")
                .addMigrations()
                .allowMainThreadQueries()
                .build();
        downloadHistoryDataBase = Room.databaseBuilder(this,DownloadHistoryDataBase.class,"downloadHistory")
                .addMigrations()
                .allowMainThreadQueries()
                .build();
    }

//    App终止调用
    @Override
    public void onTerminate() {
        super.onTerminate();
        Log.d("ning", "onTerminate: ");
    }

//    配置改变时
    @Override
    public void onConfigurationChanged(@NonNull Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Log.d("ning", "onConfigurationChanged: ");
    }
    public UserDataBase getUserDataBase() {
        return userDataBase;
    }

    public PdfItemDataBase getPdfItemDataBase() {
        return pdfItemDataBase;
    }

    public BrowsingHistoryDataBase getBrowsingHistoryDataBase(){return browsingHistoryDataBase;}
    public DownloadHistoryDataBase getDownloadHistoryDataBase(){return downloadHistoryDataBase;}

}

 

posted @ 2023-04-21 00:03  啦啦啦one  阅读(21)  评论(0)    收藏  举报