The design and implementation of Android-based IoT applications is corresponding to the current IoT, home, refrigerator, TV, air conditioner, desk lamp, smart lock and other connected applications.
1. The main functions include registration and login, device information, usage statistics, my functions, etc.
2. Add devices, connect, enable devices, etc.
The login page code is as follows:
public class LoginActivity extends BaseActivity {
@BindView(R.id.input_name)
EditText inputName;
@BindView(R.id.input_password)
EditText inputPassword;
@BindView(R.id.btn_login)
AppCompatTextView btnLogin;
@BindView(R.id.btn_register)
AppCompatTextView btnRegister;
@Override
protected int getLayoutId() {
return R.layout.activity_login;
}
@Override
protected void init() {
}
@OnClick({R.id.btn_login, R.id.btn_register})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.btn_login:
Login();
break;
case R.id.btn_register:
showActivity(LoginActivity.this, RegisterActivity.class);
break;
}
}
private void Login() {
String name = inputName.getText().toString();
String pwd = inputPassword.getText().toString();
if (TextUtils.isEmpty(name)) {
showToast("请输入用户名");
return;
}
if (TextUtils.isEmpty(pwd)) {
showToast("请输入密码");
return;
}
int i = SqliteDBUtils.getInstance(getApplicationContext()).Quer(pwd, name);
if (i == 1) {
MyApplication.getInstance().userBean = SqliteDBUtils.getInstance(getApplicationContext()).select(name);
Log.e("用户信息", MyApplication.getInstance().userBean.toString());
startActivity(new Intent(LoginActivity.this, MainActivity.class));
finish();
return;
} else if (i == 0) {
showToast("账号不存在");
return;
} else {
showToast("登录失败,请检查输入信息是否正确");
}
}
@Override
public void onMessageEvent(EventMessage event) {
super.onMessageEvent(event);
}
}
home page
code show as below:
package com.project.pictrue;
import androidx.fragment.app.Fragment;
import android.view.KeyEvent;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import com.project.pictrue.adapter.MainPagerAdapter;
import com.project.pictrue.base.BaseActivity;
import com.project.pictrue.fragment.HomeFragment;
import com.project.pictrue.fragment.TabMineFragment;
import com.project.pictrue.widget.NoScrollViewPager;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
public class MainActivity extends BaseActivity implements RadioGroup.OnCheckedChangeListener {
@BindView(R.id.main_pager)
NoScrollViewPager mainPager;
@BindView(R.id.tab_home)
RadioButton tabHome;
@BindView(R.id.tab_dynamic)
RadioButton tabDynamic;
@BindView(R.id.tab_rank)
RadioButton tabRank;
@BindView(R.id.tab_me)
RadioButton tabMe;
@BindView(R.id.radioGroup)
RadioGroup radioGroup;
private boolean isStartLogin;
private long clickTime;
@Override
protected int getLayoutId() {
return R.layout.activity_main;
}
@Override
protected void init() {
List<Fragment> fragments = new ArrayList<>();
fragments.add(new HomeFragment());
fragments.add(new HomeFragment());
fragments.add(new TabMineFragment());
MainPagerAdapter adapter = new MainPagerAdapter(getSupportFragmentManager(), fragments);
mainPager.setOffscreenPageLimit(3);
mainPager.setAdapter(adapter);
radioGroup.setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i) {
case R.id.tab_home:
mainPager.setCurrentItem(0, false);
break;
case R.id.tab_dynamic:
mainPager.setCurrentItem(1, false);
break;
case R.id.tab_rank:
mainPager.setCurrentItem(1, false);
break;
case R.id.tab_me:
mainPager.setCurrentItem(2, false);
break;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
exit();
return true;
} else {
return super.onKeyDown(keyCode, event);
}
}
private void exit() {
if ((System.currentTimeMillis() - clickTime) > 2000) {
Toast.makeText(this, "再按一次后退键退出程序", Toast.LENGTH_SHORT).show();
clickTime = System.currentTimeMillis();
} else {
try {
//正常退出
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}