《Android項目實戰-博學谷》設置部分

設置界面

思路

設置界面有三個功能,分別爲修改密碼、設置密保和退出登陸。建立 SettingActivity ,修改佈局爲 LinearLayout java

具體代碼以下:android

activity_setting.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    android:orientation="vertical"
    tools:context="cn.edu.lt.android.boxueguapp.activity.SettingActivity">

    <include layout="@layout/main_title_bar" />

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:layout_marginTop="15dp"
        android:background="#E3E3E3" />

    <RelativeLayout
        android:id="@+id/rl_modify_psw"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:background="#F7F8F8"
        android:gravity="center_vertical"
        android:paddingLeft="10dp"
        android:paddingRight="10dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="25dp"
            android:text="修改密碼"
            android:textColor="#A3A3A3"
            android:textSize="16sp" />

        <ImageView
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="25dp"
            android:src="@drawable/iv_right_arrow" />
    </RelativeLayout>

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:background="#E3E3E3" />

    <RelativeLayout
        android:id="@+id/rl_security_setting"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:background="#F7F8F8"
        android:gravity="center_vertical"
        android:paddingLeft="10dp"
        android:paddingRight="10dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="25dp"
            android:text="設置密保"
            android:textColor="#A3A3A3"
            android:textSize="16sp" />

        <ImageView
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="25dp"
            android:src="@drawable/iv_right_arrow" />
    </RelativeLayout>

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:background="#E3E3E3" />

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:layout_marginTop="15dp"
        android:background="#E3E3E3" />

    <RelativeLayout
        android:id="@+id/rl_exit_login"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:background="#F7F8F8"
        android:gravity="center_vertical"
        android:paddingLeft="10dp"
        android:paddingRight="10dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="25dp"
            android:text="退出登陸"
            android:textColor="#A3A3A3"
            android:textSize="16sp" />
    </RelativeLayout>

    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:background="#E3E3E3" />
</LinearLayout>

設置邏輯

思路

在設置界面中添加點擊事件,當點擊修改密碼時跳轉到修改密碼界面,當點擊設置密保時跳轉到設置密保界面,當點擊退出登陸時清除登陸狀態和用戶名,且將退出的狀態傳遞給主界面app

SettingActivity

package cn.edu.lt.android.boxueguapp.activity;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

import cn.edu.lt.android.boxueguapp.R;

/**
 * Created by lt on 2018/1/2.
 */

public class SettingActivity extends AppCompatActivity {
    private TextView tv_main_title;
    private TextView tv_back;
    private RelativeLayout rl_title_bar;
    private RelativeLayout rl_modify_psw,rl_security_setting,rl_exit_login;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_setting);
        init();
    }

    /**
     * 獲取界面控件
     */
    private void init(){
        //標題欄
        tv_main_title=(TextView) findViewById(R.id.tv_main_title);
        tv_main_title.setText("設置");
        tv_back=(TextView) findViewById(R.id.tv_back);
        rl_title_bar=(RelativeLayout) findViewById(R.id.title_bar);
        rl_title_bar.setBackgroundColor(Color.parseColor("#30B4FF"));

        rl_modify_psw=(RelativeLayout) findViewById(R.id.rl_modify_psw);
        rl_security_setting=(RelativeLayout) findViewById(R.id.rl_security_setting);
        rl_exit_login=(RelativeLayout) findViewById(R.id.rl_exit_login);
        //返回的點擊事件
        tv_back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SettingActivity.this.finish();
            }
        });
        //修改密碼的點擊事件
        rl_modify_psw.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //TODO 跳轉到修改密碼
            }
        });
        //設置密保的點擊事件
        rl_security_setting.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });
        //退出登陸的點擊事件
        rl_exit_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                clearLoginStatus();
                Toast.makeText(SettingActivity.this, "退出登陸成功", Toast.LENGTH_SHORT).show();
                clearLoginStatus();//清除登陸狀態和登陸時的用戶名
                //退出登陸成功後把退出成功的狀態傳遞到MainActivity中
                Intent data =new Intent();
                data.putExtra("isLogin", false);
                setResult(RESULT_OK, data);
                SettingActivity.this.finish();
            }
        });
    }

    /**
     * 清除SharedPreferences中的登陸狀態和登陸時的用戶名
     */
    private void clearLoginStatus() {
        SharedPreferences sp=getSharedPreferences("loginInfo", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor=sp.edit();//獲取編輯器
        editor.putBoolean("isLogin", false);
        editor.putString("loginUserName", "");
        editor.commit();//提交修改
    }
}

運行效果

運行效果

相關文章
相關標籤/搜索