package andios.org.activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.annotation.Nullable;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
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.TextView;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import andios.org.R;
import andios.org.bean.UserBean;
import andios.org.tool.IntentTools;
import andios.org.tool.PictureUtil;
import andios.org.tool.ProgressDialogUtil;
import andios.org.custom_view.CircleImageView;
import andios.org.tool.Constance;
import andios.org.appplection.MyApplication;
import andios.org.tool.SharedHelper;
import static andios.org.tool.Constance.picture_path;
import static andios.org.tool.Constance.user_id;
public class LoginActivity extends AppCompatActivity implements
View.OnClickListener ,CompoundButton.OnCheckedChangeListener,AdapterView.OnItemSelectedListener {
private EditText user_name;
private EditText password;
private Button login;
private TextView forget_password;
private CheckBox checkBox1,checkBox2;
private SharedHelper sharedHelper;
private Context context;
private Spinner spinner;
private List<String> list;
private ArrayAdapter adapter;
private CircleImageView circleImageView;
private PictureUtil pictureUtil;
private List<UserBean> userBeanList;
private Gson gson;
private static final int PHOTO_REQUEST_CAREMA = 1;// 拍照
private static final int PHOTO_REQUEST_GALLERY = 2;// 从相册中选择
private static final int PHOTO_REQUEST_CUT = 3;// 结果
/** 首先默认个文件保存路径 */
private static final String SAVE_REAL_PATH = Environment.getExternalStorageDirectory().getAbsolutePath()+"/good/savePic";//保存的确切位置
private static final String PHOTO_FILE_NAME = "temp_photo.jpg";
private File tempFile;
private AlertDialog.Builder builder;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
getSupportActionBar().hide();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
init();
}
/**
* 初始化控件
*/
private void init(){
initData();
pictureUtil=new PictureUtil();
user_name=findViewById(R.id.user_name);
password=findViewById(R.id.password);
login=findViewById(R.id.login);
checkBox1=findViewById(R.id.remember);
checkBox2=findViewById(R.id.self_login);
forget_password=findViewById(R.id.login_forget_password);
spinner = findViewById(R.id.user_id);
circleImageView=findViewById(R.id.u_logo);
adapter=new ArrayAdapter<>(this,android.R.layout.simple_spinner_item,list);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
context=getApplicationContext();
sharedHelper=new SharedHelper(context);
login.setOnClickListener(this);
forget_password.setOnClickListener(this);
checkBox1.setOnCheckedChangeListener(this);
checkBox2.setOnCheckedChangeListener(this);
circleImageView.setOnClickListener(this);
}
private void initData(){
list=new ArrayList<>();
list.add("请选择登录者身份");
list.add("管理员");
list.add("教师");
list.add("学生");
}
/**
* 设置监听事件
* @param v
*/
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.login:
String url= Constance.url+"servlet/LoginServlet?";
String u_username = user_name.getText().toString();
String u_password = password.getText().toString();
String u_id=String.valueOf(spinner.getSelectedItemPosition());
if(u_id.equals("0")){
Toast.makeText(this, "请选择用户身份!", Toast.LENGTH_SHORT).show();
break;
}
if (checkBox2.isChecked()){
sharedHelper.save(u_id,u_username,u_password,picture_path);
setU_index(u_username,u_password);
}
login(url,u_id,u_username,u_password);
break;
case R.id.login_forget_password:
IntentTools.getInstance().intent(LoginActivity.this,ForgetActivity.class,null);
break;
case R.id.u_logo:
createDialog();
break;
}
}
private void login(String url,final String userId,final String userName, final String password){
ProgressDialogUtil.showProgressDialog(LoginActivity.this,"登录中请稍后...");
StringRequest request=new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String s) {
if (s.equals("200")){
ProgressDialogUtil.dismiss();
Intent intent=new Intent(LoginActivity.this,MainActivity.class);
startActivity(intent);
LoginActivity.this.finish();
}else if(s.equals("404")) {
ProgressDialogUtil.dismiss();
Toast.makeText(LoginActivity.this,"用户名或密码输入错误",Toast.LENGTH_SHORT).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
ProgressDialogUtil.dismiss();
Toast.makeText(LoginActivity.this,"网络连接超时,请检查您的网络设置!",Toast.LENGTH_SHORT).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map map=new HashMap();
map.put("user_id",userId);
map.put("user_name",userName);
map.put("password",password);
return map;
}
};
request.setTag("LoginActivity");
MyApplication.getHttpQueues().add(request);
}
@Override
protected void onStart() {
super.onStart();
Map<String,String> data=sharedHelper.read();
user_name.setText(data.get("username"));
password.setText(data.get("password"));//如果没有设置密码,值为“”,不为null。
if (!data.get("username").equals("")){
spinner.setSelection(Integer.parseInt(data.get("user_id")),true);
checkBox1.setChecked(true);
checkBox2.setChecked(true);
}
if (!data.get("picture_path").equals("")){
circleImageView.setImageBitmap(pictureUtil.getLocalBitmap(data.get("picture_path")));
}
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
String u_username = user_name.getText().toString();
String p_password = password.getText().toString();
switch (buttonView.getId()){
case R.id.r
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Android 项目是使用 Android 操作系统和相关开发工具开发的一款移动应用程序。Android 平台提供了丰富的功能和接口,开发人员可以使用 Java 或 Kotlin 等编程语言编写 Android 应用程序。Android 项目也可以是针对特定设备或特定需求进行自定义开发的软件解决方案。 以下是 Android 项目的一些主要特点和资料介绍: 1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种设备上。 3. 灵活的用户界面:Android 提供了丰富的用户界面控件和布局方式,可以实现漂亮、个性化的用户界面。 4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 6. 数据存储:Android 提供了多种数据存储方式,包括 SQLite 数据库、文件存储、SharedPreferences 等。 7. 网络通信:Android 支持多种网络通信方式,包括 HTTP、TCP、UDP 等。 8. 社交媒体集成:Android 提供了集成社交媒体的功能,可以实现与 Facebook、Twitter、Google+ 等社交媒体的交互。 # 注意 1. 本资源仅用于开源学习和技术交流。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。 3. 不可商用,一切后果由使用者承担。
资源推荐
资源详情
资源评论
收起资源包目录
这是实验室管理系统的客户端,适用于Android系统。.zip (173个子文件)
app-release.apk 3.21MB
gradlew.bat 2KB
.gitignore 176B
.gitignore 7B
build.gradle 1KB
build.gradle 546B
settings.gradle 15B
gradlew 5KB
gson2.3.1.jar 206KB
Volley.jar 154KB
gradle-wrapper.jar 53KB
LoginActivity.java 14KB
BasisTimesUtils.java 12KB
PullUpToLoadMore.java 10KB
ShowFragment.java 10KB
AppointmentActivity.java 7KB
PictureUtil.java 7KB
LibFragment.java 7KB
ShowDetailsActivity.java 7KB
Banner.java 6KB
LibDetailsActivity.java 6KB
MyStoreActivity.java 6KB
MainActivity.java 6KB
SearchLibActivity.java 5KB
MyAppointmentActivity.java 5KB
VolleyRequest.java 3KB
MyAppointmentAdapter.java 3KB
AppointmentBean.java 3KB
SearchLibActivityAdapter.java 3KB
MineFragment.java 3KB
MyScrollView.java 2KB
CircleImageView.java 2KB
HomeRecyclerAdapter.java 2KB
ShowRecyclerViewAdapter.java 2KB
AppStartActivity.java 2KB
SharedHelper.java 2KB
MineItemAdapter.java 2KB
ProgressDialogUtil.java 2KB
MyStoreActivityAdapter.java 2KB
UserBean.java 2KB
VolleyInterface.java 1KB
RoundView.java 1KB
ShowDetailsBean.java 1KB
LibDetailsBean.java 1KB
LibInformationBean.java 1KB
IntentTools.java 1KB
MyAppointmentBean.java 1024B
ShowInformationBean.java 968B
MyCollectionShowBean.java 952B
MyCollectionLibBean.java 940B
ResetActivity.java 897B
ForgetActivity.java 884B
ExampleInstrumentedTest.java 704B
HomeListBean.java 684B
ShowListBean.java 645B
FragmentAdapter.java 599B
Constance.java 577B
MyApplication.java 501B
ExampleUnitTest.java 371B
OnItemClickListener.java 227B
start.jpeg 44KB
chun_logo.jpeg 44KB
chisong_logo.jpeg 31KB
logo.jpeg 27KB
xioa_chun.jpg 30KB
bg_mine.jpg 22KB
dancing.jpg 21KB
one.jpg 2KB
two.jpg 1KB
three.jpg 1KB
output.json 234B
ic_launcher_round.png 15KB
ic_launcher_round.png 10KB
ic_launcher.png 9KB
has_saved.png 9KB
appointment.png 8KB
ic_launcher_round.png 7KB
lushen_logo.png 7KB
ic_launcher.png 6KB
share.png 5KB
save.png 5KB
ic_launcher_round.png 5KB
ic_launcher.png 4KB
ic_launcher.png 3KB
ic_launcher_round.png 3KB
ic_launcher.png 2KB
ic_scan.png 2KB
ic_mine.png 1KB
ic_scan.png 1KB
ic_home.png 892B
ic_mine.png 832B
search.png 749B
search.png 749B
ic_home.png 688B
ic_scan.png 597B
ic_scan.png 579B
ic_mine.png 536B
ic_action_in.png 471B
ic_home.png 456B
ic_action_in.png 452B
共 173 条
- 1
- 2
资源评论
阿齐Archie
- 粉丝: 1w+
- 资源: 2303
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功