• Android->登录界面


    今天需求要做一个所有app都有的登录界面,正好巩固一下我们之前学的基础布局知识。

    先来看下效果图

    1.布局的xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout                   xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#2197db"
        >
     <ImageView
            android:id="@+id/loginbutton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="40dp"
            android:src="@drawable/login_pic"/>
        
    <LinearLayout
            android:id="@+id/input"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/loginbutton"
            android:layout_marginLeft="28dp"
            android:layout_marginRight="28dp"
            android:background="#fff"
            android:orientation="vertical">
    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="44dp"
            android:background="#fff"
            android:gravity="center_vertical"
            android:orientation="horizontal" >
    
     <EditText
                android:id="@+id/userId"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:background="@null"
                android:imeOptions="actionDone"
                android:textSize="16sp"
                android:ems="10"
                android:hint="请输入用户名"
                >
       </EditText>
    <Button
                android:id="@+id/button_bar"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginRight="8dp"
                android:layout_marginLeft="1dp"
                android:background="@drawable/login_input_arrow"
                />
    
      </LinearLayout>
     <View
                android:layout_width="fill_parent"
                android:layout_height="1.0px"
                android:layout_marginLeft="1.0px"
                android:layout_marginRight="1.0px"
                android:background="#ffc0c3c4" />
    <EditText
                android:id="@+id/pass"
                android:layout_width="fill_parent"
                android:layout_height="44.0dip"
                android:background="#00ffffff"
                android:gravity="center_vertical"
                android:inputType="textPassword"
                android:maxLength="16"
                android:maxLines="1"
                android:textColor="#ff1d1d1d"
                android:textColorHint="#ff666666"
                android:textSize="16.0sp"
                android:hint="请输入密码"
                />
        </LinearLayout>
     <Button
          android:id="@+id/loginBtn"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:layout_below="@+id/input"
          android:layout_marginTop="10dp"
          android:background="#3aadfd"
          android:text="登    录"
          android:textColor="#ffffff"
          android:textSize="18dp"
            android:layout_centerHorizontal="true"
            android:layout_marginLeft="28dp"
            android:layout_marginRight="28dp"/>
        <TextView
            android:text=""
            android:layout_width="wrap_content"
            android:layout_below="@+id/loginBtn"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:id="@+id/promptText"
            android:textColor="#ff0000"
            android:layout_marginTop="10dp"
            android:textSize="18sp"/>
    
    </RelativeLayout>

    2.java部分代码

    public class LoginActivity extends Activity implements View.OnClickListener{
            private static final String TAG = "login";
                Button loginBtn = null;
                EditText useridEt = null;
                EditText passEt = null;
                TextView promptText = null;
              @Override
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_login);
            loginBtn = (Button) findViewById(R.id.loginBtn);
            loginBtn.setOnClickListener(this);
            useridEt = (EditText) findViewById(R.id.userId); 
            passEt = (EditText) findViewById(R.id.pass);
            promptText = (TextView) findViewById(R.id.promptText);
            OkHttpClient okHttpClient = new OkHttpClient.Builder()
                    .connectTimeout(10000L, TimeUnit.MILLISECONDS)
                    .readTimeout(10000L, TimeUnit.MILLISECONDS)
                    .build();
            OkHttpUtils.initClient(okHttpClient);
    
        @Override
        public void onClick(View v) {
            String userid =  useridEt.getText().toString().trim();
            String pass =  passEt.getText().toString().trim();
            if(userid.equals("")){
                promptText.setText(R.string.userIdError);
                return ;
            }
            if(pass.equals("")){
                promptText.setText(R.string.passError);
                return ;
            }
     WebConstant.digest = ("Basic " + new String(Base64.encode((userid + ':' + pass).getBytes(), Base64.DEFAULT))).replace("
    ", "");
    
                String url = WebConstant.REQUESTPATH+"/users/" + userid+"?getAll=true";
                OkHttpUtils.get()
                        .url(url).addHeader("Authorization",  WebConstant.digest).addHeader("Accept-Language","zh-CN")
                        .build().execute(new Callback()
                        {
                            @Override
                            public String parseNetworkResponse(Response response, int id) throws Exception {
                                String string = response.body().string();
                                JSONObject jsonObj = new JSONObject(string);
                                if(jsonObj.get("userName")!=null){
                                    WebConstant.userId = (String)jsonObj.get("userId");
                                    WebConstant.userName = (String)jsonObj.get("userName");
                                    return (String) jsonObj.get("userName");
                                }
                                return null;
                            }
    
                            @Override
                            public void onError(Call call, Exception e, int id) {
                                WebConstant.digest = null;
                                promptText.setText(R.string.loginError);
                                Log.i(TAG,e.getMessage());
                                e.printStackTrace();
                            }
    
                            @Override
                            public void onResponse(Object response, int id) {
                                promptText.setText(R.string.loginSuccess+" "+response);
                                Intent intent = new Intent();
                                LoginActivity.this.setResult(WebConstant.RESULT_OK, intent);
                                LoginActivity.this.finish();
                            }
                        });
    
        }
    }        

    简单的登录,用户名密码验证。

    主要是熟悉安卓的布局,java部分相信会点java的同学都能看懂,看不懂的底下评论。

  • 相关阅读:
    工作杠杆
    AngularJS 自定义指令directive 介绍
    CentOS卸载OpenJDK并安装Sun JDK
    jQuery Datatable 表格插件
    ZTree 使用范例
    jQuery UI 实例 – 切换(Toggle)
    curl 抓取页面信息
    报警平台
    PHP imagechar() 图形验证码 字体太小问题
    Discuz!在线中文分词服务
  • 原文地址:https://www.cnblogs.com/pjsweb/p/6669435.html
Copyright © 2020-2023  润新知