目录结构和页面效果
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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"
tools:context="com.fzq.MainActivity">
<Button
android:id="@+id/loginButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="68dp"
android:text="@string/login"
app:layout_constraintRight_toLeftOf="@+id/registerButton"
tools:layout_constraintTop_creator="1"
android:layout_marginEnd="68dp"
android:layout_marginTop="26dp"
app:layout_constraintTop_toBottomOf="@+id/password" />
<Button
android:id="@+id/registerButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/register"
tools:layout_constraintTop_creator="1"
tools:layout_constraintRight_creator="1"
android:layout_marginEnd="68dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginTop="26dp"
app:layout_constraintTop_toBottomOf="@+id/password"
android:layout_marginRight="68dp" />
<EditText
android:id="@+id/username"
android:layout_width="240dp"
android:layout_height="45dp"
android:layout_marginBottom="35dp"
android:layout_marginEnd="68dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginStart="68dp"
android:ems="10"
android:hint="@string/username"
android:inputType="textPersonName"
app:layout_constraintBottom_toTopOf="@+id/password"
app:layout_constraintHorizontal_bias="0.516"
app:layout_constraintLeft_toLeftOf="@+id/password"
app:layout_constraintRight_toRightOf="@+id/password"
tools:layout_constraintLeft_creator="1"
tools:layout_constraintRight_creator="1"
tools:layout_editor_absoluteX="-15dp"
tools:layout_editor_absoluteY="152dp" />
<EditText
android:id="@+id/password"
android:layout_width="240dp"
android:layout_height="45dp"
android:layout_marginEnd="69dp"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:layout_marginStart="69dp"
android:ems="10"
android:hint="@string/password"
android:inputType="textPassword"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="@+id/loginButton"
app:layout_constraintRight_toRightOf="@+id/registerButton"
app:layout_constraintTop_toTopOf="parent"
tools:layout_constraintBottom_creator="1"
tools:layout_constraintLeft_creator="1"
tools:layout_constraintRight_creator="1"
tools:layout_constraintTop_creator="1" />
<TextView
android:id="@+id/textView2"
android:layout_width="250dp"
android:layout_height="65dp"
android:layout_marginBottom="50dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:autoText="false"
android:text="Welcome"
android:textAlignment="center"
android:textSize="50sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/username"
app:layout_constraintHorizontal_bias="0.509"
app:layout_constraintLeft_toLeftOf="@+id/username"
app:layout_constraintRight_toRightOf="@+id/username" />
</android.support.constraint.ConstraintLayout>
login.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:weightSum="1">
<TextView
android:id="@+id/textView3"
android:layout_width="0dp"
android:layout_height="118dp"
android:layout_marginTop="200dp"
android:layout_weight="1"
android:text="@string/great_you_ve_login"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold" />
</LinearLayout>
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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical">
<EditText
android:id="@+id/editText5"
android:layout_width="270dp"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Username"
android:inputType="textPersonName" />
<EditText
android:id="@+id/editText6"
android:layout_width="270dp"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Email"
android:inputType="textPersonName" />
<EditText
android:id="@+id/editText7"
android:layout_width="270dp"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Password"
android:inputType="textPassword" />
<EditText
android:id="@+id/editText8"
android:layout_width="270dp"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Confirm password"
android:inputType="textPassword" />
<Button
android:id="@+id/button3"
android:layout_width="270dp"
android:layout_height="wrap_content"
android:text="Submit" />
</LinearLayout>
</LinearLayout>
values/string.xml
<resources>
<string name="app_name">测试登录</string>
<string name="login">Login</string>
<string name="register">Register</string>
<string name="username">Username</string>
<string name="password">Password</string>
<string name="great_you_ve_login">Great, you\'ve logged in!</string>
</resources>
AndroidMainfest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.fzq.myapplicationt2">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name="com.fzq.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- <activity android:name=".login">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
<activity android:name=".register">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>-->
<activity android:name="com.fzq.Login" />
<activity android:name="com.fzq.Register" />
<activity android:name="com.fzq.LoginActivity" />
</application>
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
MainActivity.java
package com.fzq;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import com.Config;
import com.Utils;
import com.fzq.myapplicationt2.R;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
public class MainActivity extends AppCompatActivity {
private EditText username;
private EditText password;
private UserLoginTask mAuthTask = null;
private boolean hadLogin = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//login button
findViewById(R.id.loginButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String user = username.getText().toString();
String pass = password.getText().toString();
mAuthTask = new UserLoginTask(user, pass);
mAuthTask.execute((Void) null);
}
});
username = findViewById(R.id.username);
password = findViewById(R.id.password);
//register button
findViewById(R.id.password).setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
//提示框确定是否跳转
new AlertDialog.Builder(MainActivity.this).setTitle("Jump").setMessage("Ready to jump?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(MainActivity.this, Register.class);
startActivity(intent);
}
})
.setNegativeButton("No", null)
.show();
}
});
}
/**
* Represents an asynchronous login/registration task used to authenticate
* the user.
*/
public class UserLoginTask extends AsyncTask<Void, Void, Boolean> {
private final String username;
private final String password;
public UserLoginTask(String username, String password) {
this.username = username;
this.password = password;
}
@Override
protected Boolean doInBackground(Void... params) {
// TODO: attempt authentication against a network service.
try {
// Config.serverIp=serverHostView.getText().toString();
// Config.serverPort=Integer.parseInt(serverPortView.getText().toString());
// controller路径+参数
URL url = new URL(Config.getServerUri() + "/casemgr/control/ajaxLogin?USERNAME=" + username + "¤tPassword=" + password);
URLConnection conn = url.openConnection();
conn.connect();
InputStream inputStream = conn.getInputStream();
} catch (Exception e) {
e.printStackTrace();
return false;
}
// TODO: register the new account here.
return true;
}
@Override
protected void onPostExecute(final Boolean success) {
mAuthTask = null;
if (success) {
MainActivity.this.hadLogin = true;
Utils.toast(MainActivity.this, "登陆成功");
/*
第一个参数:上下文对象this
第二个参数:目标文件
*/
Intent intent = new Intent(MainActivity.this,LoginActivity.class);
startActivity(intent);
} else {
MainActivity.this.hadLogin = false;
Utils.toast(MainActivity.this, "登陆失败");
}
}
@Override
protected void onCancelled() {
mAuthTask = null;
}
}
}
LoginActivity.java
package com.fzq;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import com.SerialPortUtil;
import com.SerialUtil;
import com.fzq.myapplicationt2.R;
import com.mq.MqCommand;
import com.mq.MqttListener;
import com.mq.MqttManager;
import com.util.Debug;
import org.fusesource.mqtt.client.Callback;
import java.util.Map;
public class LoginActivity extends AppCompatActivity {
public static final String tag = LoginActivity.class.getName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
// lockerListener();
}
/*
public void lockerListener() {
MqttListener listener =null;
try {
listener = MqttManager.getListener("locker" + "listener");
// System.out.println(listener);
} catch (Exception e) {
e.printStackTrace();
}
Debug.logInfo("开始监听服务器命令", tag);
// final SerialPortUtil serialPortUtil = new SerialPortUtil("ttyUSB0", 9600, null);
listener.addReceiveHandlers(MqCommand.commandTopic, new Callback() {
@Override
public void onSuccess(Object o) {
Map map= SerialUtil.deSerial((byte[]) o);
// serialPortUtil.sendSerialPort((byte[]) map.get("hardwareId"));
new AlertDialog.Builder(LoginActivity.this).setTitle("Success!")
.setMessage("监听到的数据:"+map.get("hardwareId"))
.setNegativeButton("OK",null)
.show();
}
@Override
public void onFailure(Throwable throwable) {
}
});
try {
listener.start();
} catch (Exception e) {
e.printStackTrace();
}
}
*/
}
Login.java
package com.fzq;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import com.SerialPortUtil;
import com.SerialUtil;
import com.fzq.myapplicationt2.R;
import com.mq.MqCommand;
import com.mq.MqttListener;
import com.mq.MqttManager;
import com.util.Debug;
import org.fusesource.mqtt.client.Callback;
import java.util.Map;
public class LoginActivity extends AppCompatActivity {
public static final String tag = LoginActivity.class.getName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
// lockerListener();
}
/*
public void lockerListener() {
MqttListener listener =null;
try {
listener = MqttManager.getListener("locker" + "listener");
// System.out.println(listener);
} catch (Exception e) {
e.printStackTrace();
}
Debug.logInfo("开始监听服务器命令", tag);
// final SerialPortUtil serialPortUtil = new SerialPortUtil("ttyUSB0", 9600, null);
listener.addReceiveHandlers(MqCommand.commandTopic, new Callback() {
@Override
public void onSuccess(Object o) {
Map map= SerialUtil.deSerial((byte[]) o);
// serialPortUtil.sendSerialPort((byte[]) map.get("hardwareId"));
new AlertDialog.Builder(LoginActivity.this).setTitle("Success!")
.setMessage("监听到的数据:"+map.get("hardwareId"))
.setNegativeButton("OK",null)
.show();
}
@Override
public void onFailure(Throwable throwable) {
}
});
try {
listener.start();
} catch (Exception e) {
e.printStackTrace();
}
}
*/
}
Register.java
package com.fzq;
import android.app.Activity;
import android.os.Bundle;
import com.fzq.myapplicationt2.R;
public class Register extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
}
}