阅读背景:

实现原生登录注册和个人中心模块

来源:互联网 

 
 
 
 
//封装的OkHttp工具类[java] view plain copy<span style="font-size:18px;">public class NetUtil {      Tojson tojson;      MyHandler myhandler=new MyHandler();      public void getOkhttp(String surl){          //创建对象          OkHttpClient client=new OkHttpClient();          //创建请求          Request request=new Request.Builder().url(surl).build();          //创建队列          Call call = client.newCall(request);          call.enqueue(new Callback() {              @Override              public void onFailure(Call call, IOException e) {                  //失败                  Message msg=new Message();                  msg.what=0;                  msg.obj="失败";                  myhandler.sendMessage(msg);              }                @Override              public void onResponse(Call call, Response response) throws IOException {                  //成功                  String json = response.body().string();                  Message msg=new Message();                  msg.what=1;                  msg.obj=json;                  myhandler.sendMessage(msg);              }          });        }        //写一个接口用于外部访问      public interface Tojson{          void error(String error);          void success(String json);      }      //提供方法给外部访问      public void getjson(Tojson tojson){          this.tojson=tojson;      }        class MyHandler extends Handler{          @Override          public void handleMessage(Message msg) {              super.handleMessage(msg);              int w = msg.what;              if(w==0){                  String error= (String) msg.obj;                  tojson.error(error);              }              if(w==1){                  String json= (String) msg.obj;                  tojson.success(json);              }          }      }  }</span>  //登录布局[java] view plain copy<span style="font-size:18px;"><LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"      xmlns:app="https://schemas.android.com/apk/res-auto"      xmlns:tools="https://schemas.android.com/tools"      android:layout_width="match_parent"      android:layout_height="match_parent"      android:orientation="vertical"      tools:context="com.bwie.biaodanyanzheng.MainActivity">        <TextView          android:textSize="30sp"          android:padding="5dp"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:text="登录"          android:layout_gravity="center"/>        <View          android:background="#999999"          android:layout_width="match_parent"          android:layout_height="0.75dp"/>         <EditText           android:id="@+id/tel"           android:hint="请输入手机号"           android:layout_marginTop="20dp"           android:layout_gravity="center"           android:ems="15"           android:layout_width="wrap_content"           android:layout_height="wrap_content" />        <EditText          android:id="@+id/pwd"          android:hint="请输入密码"          android:layout_marginTop="20dp"          android:layout_gravity="center"          android:ems="15"          android:layout_width="wrap_content"          android:layout_height="wrap_content" />        <LinearLayout          android:layout_marginTop="20dp"          android:layout_gravity="center"          android:layout_width="wrap_content"          android:layout_height="wrap_content">          <Button              android:onClick="dl"                android:textSize="20sp"                android:text="登录"                android:layout_width="wrap_content"                android:layout_height="wrap_content" />          <Button              android:onClick="zc"              android:layout_marginLeft="20px"              android:textSize="20sp"              android:text="注册"              android:layout_width="wrap_content"              android:layout_height="wrap_content" />      </LinearLayout>  </LinearLayout></span>  //登录代码[java] view plain copy<span style="font-size:18px;">public class MainActivity extends AppCompatActivity implements NetUtil.Tojson{      String url="https://120.27.23.105/user/login";      private EditText tel;      private EditText pwd;      private SharedPreferences zidong;        @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);          //初始化控件          initViews();      }        private void initViews() {          tel = findViewById(R.id.tel);          pwd = findViewById(R.id.pwd);          //创建记录的xml文件          zidong = getSharedPreferences("zidong", MODE_PRIVATE);          //设置自动登录的装状态          boolean jizhu = zidong.getBoolean("jizhu", false);          if(jizhu){//如果为真就证明登录过,跳转              //获取值              String t = zidong.getString("tel",null);              String p = zidong.getString("pwd",null);              int uid = zidong.getInt("uid", -1);              //赋值              tel.setText(t);              pwd.setText(p);              //跳转到个人页面              Intent intent=new Intent(MainActivity.this,Main3Activity.class);              intent.putExtra("uid",uid);              startActivity(intent);          }      }        public void dl(View v){          //获取输入框的值          String t = tel.getText().toString().trim();          String p = pwd.getText().toString().trim();          //请求网络          NetUtil netUtil=new NetUtil();          netUtil.getOkhttp(url+"?mobile="+t+"&password="+p);          netUtil.getjson(this);      }      public void zc(View v){          Intent intent=new Intent(MainActivity.this,Main2Activity.class);          startActivityForResult(intent,1);      }        //回跳的方法      @Override      protected void onActivityResult(int requestCode, int resultCode, Intent data) {          super.onActivityResult(requestCode, resultCode, data);                //展示到界面                tel.setText(data.getStringExtra("tel"));                pwd.setText(data.getStringExtra("pwd"));      }        @Override      public void error(String error) {        }        @Override      public void success(String json) {          try {              //使用原生josn   因为返回的类不一样,所以要使用原生的json              JSONObject jsonObject=new JSONObject(json);              String code = jsonObject.getString("code");              if(code.equals("0")){                  Gson gson=new Gson();                  zhece zhece = gson.fromJson(json, zhece.class);                  //如果登录成功,保存值,并改变记录状态                  SharedPreferences.Editor edit = zidong.edit();                  edit.putBoolean("jizhu",true);                  edit.putString("tel",zhece.getData().getMobile());                  edit.putString("pwd",zhece.getData().getMobile());                  edit.putInt("uid",zhece.getData().getUid());                  edit.commit();                    //跳转到个人页面                  Intent intent=new Intent(MainActivity.this,Main3Activity.class);                  intent.putExtra("uid",zhece.getData().getUid());                  startActivity(intent);              }else {                  Toast.makeText(MainActivity.this,jsonObject.getString("msg") + "请注册",Toast.LENGTH_LONG).show();              }          } catch (Exception e) {              e.printStackTrace();          }      }    }</span>  //注册页面代码[java] view plain copy<span style="font-size:18px;">public class Main2Activity extends AppCompatActivity implements NetUtil.Tojson{      String url="https://120.27.23.105/user/reg";      private EditText ztel;      private EditText zpwd;      private String pwd;      private String tel;        @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main2);          //初始化数据          initViews();      }        private void initViews() {          ztel = findViewById(R.id.ztel);          zpwd = findViewById(R.id.zpwd);      }        public void ljzc(View v){            //获取网络数据            NetUtil netUtil=new NetUtil();            //获取输入框数据          pwd = zpwd.getText().toString().trim();          tel = ztel.getText().toString().trim();          //获取数据          netUtil.getOkhttp(url+"?mobile="+ tel +"&password="+ pwd);          //接口回调          netUtil.getjson(this);      }        @Override      public void error(String error) {        }        @Override      public void success(String json) {            //获取数据          Gson g=new Gson();          zhece zhece = g.fromJson(json, zhece.class);          String code = zhece.getCode();          if(code.equals("1")){              Toast.makeText(Main2Activity.this,zhece.getMsg(),Toast.LENGTH_LONG).show();          }          //注册成功,回跳登录页面          if(code.equals("0")){              Intent intent = new Intent();              intent.putExtra("tel",tel);              intent.putExtra("pwd",pwd);              setResult(0,intent);              finish();          }        }  }</span>  //个人页面代码[java] view plain copy<span style="font-size:18px;">public class Main3Activity extends AppCompatActivity implements NetUtil.Tojson{      String url="https://120.27.23.105/user/getUserInfo";      private TextView name;      private TextView pass;        @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main3);          Intent intent = getIntent();          //获取数据          int uid = intent.getIntExtra("uid",-1);          //获取控件          name = findViewById(R.id.name);          pass = findViewById(R.id.pass);          //请求数据          NetUtil netUtil=new NetUtil();          netUtil.getOkhttp(url+"?uid="+uid);          netUtil.getjson(this);      }      public void tui(View v){            //点击推出按钮,清空数据回到登录页面          SharedPreferences zidong = getSharedPreferences("zidong", MODE_PRIVATE);          zidong.edit().clear().commit();          //跳转到登录页面          Intent intent=new Intent(Main3Activity.this,MainActivity.class);          startActivity(intent);      }        @Override      public void error(String error) {        }        @Override      public void success(String json) {          //获取数据          JSONObject jsonObject= null;          try {              jsonObject = new JSONObject(json);              String code = jsonObject.getString("code");              if(code.equals("0")){                  Gson g=new Gson();                  zhece zhece = g.fromJson(json, zhece.class);                  //给赋值                  name.setText(zhece.getData().getUid()+"");                  pass.setText(zhece.getData().getUsername());              }          } catch (JSONException e) {              e.printStackTrace();          }        }  }</span>  //封装的OkHttp工具类[java] view plain copy&l



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: