基于eclipse的android项目实战—博学谷(六)设置界面

本项目是用eclipse软件编写,经过我的亲自实践,其真实有效,希望能给您有所帮助
项目版本:android5.1.1
AVD建议:android4.4.2及以上

文章目录

  • 效果图:
  • 1.设置界面布局`activity_setting.xml`
  • 2.设置界面逻辑代码
  • 3.功能完善

效果图:

  在设置界面主要包含了修改密码、设置密保、退出登录等功能。当用户点击“修改密码”时会跳转到修改密码界面,当用户点击“设置密保”时会跳转到设置密保界面,当点击“退出登录”时会退出当前登录账号。

1.设置界面布局activity_setting.xml

res/layout文件夹中新建activity_setting.xml文件,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    android:orientation="vertical" >
    
    <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_pwd"
        android:layout_width="fill_parent"
        android:layout_height="65dp"
        android:background="#F7F8F8"
        android:gravity="center_vertical"
        android:paddingLeft="20dp"
        android:paddingRight="20dp">
        
        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="40dp"
            android:text="@string/up_pwd"
            android:textColor="#000000"
            android:textSize="25sp"/>
        
        <ImageView 
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_alignParentRight="true"
                android:contentDescription="@null"
            android:layout_centerVertical="true"
            android:layout_marginRight="25dp"
            android:src="@drawable/iv_right_arrow"/>
        
    </RelativeLayout>
    <View 
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#E3E3E3"/>
    
    <RelativeLayout 
        android:id="@+id/rl_security_setting"
        android:layout_width="fill_parent"
        android:layout_height="65dp"
        android:background="#F7F8F8"
        android:gravity="center_vertical"
        android:paddingLeft="20dp"
        android:paddingRight="20dp">
        
        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="40dp"
            android:text="@string/bh_pwd"
            android:textColor="#000000"
            android:textSize="25sp"/>
        <ImageView 
            android:layout_width="30dp"
            android:contentDescription="@null"
            android:layout_height="30dp"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="25dp"
            android:src="@drawable/iv_right_arrow"/>
        
    </RelativeLayout>
    <View 
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#E3E3E3"/>
    <View 
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_marginTop="20dp"
        android:background="#E3E3E3"/>
    
    <RelativeLayout
        android:id="@+id/rl_exit_login" 
        android:layout_width="fill_parent"
        android:layout_height="65dp"
        android:background="#F7F8F8"
        android:gravity="center_vertical"
        android:paddingLeft="20dp"
        android:paddingRight="20dp">
        
        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="40dp"
            android:text="@string/quit_login"
            android:textColor="#000000"
            android:textSize="25sp"/>
        <ImageView 
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:contentDescription="@null"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="25dp"
            android:src="@drawable/iv_right_arrow"/>
    </RelativeLayout>

</LinearLayout>

文本信息在values文件夹下的string.xml文件里面:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">BoXueGu</string>
    <string name="hello_world">Hello world!</string>
    <string name="boxuegu">博学谷</string>
    <string name="name">请输入用户名</string>
    <string name="pwd">请输入密码</string>
    <string name="pwd_again">请再次输入密码</string>
    <string name="btn_register">注册</string>
    <string name="login">登录</string>
    <string name="tv_register">立即注册</string>
    <string name="find_pwd">找回密码?</string>
    <string name="course">课程</string>
    <string name="exercises">习题</string>
    <string name="myinfo"></string>
    <string name="tv_user_name">点击登录</string>
    <string name="iv_course_historyicon">播放记录</string>
    <string name="userinfo">设置</string>
    <string name="up_pwd">修改密码</string>
    <string name="bh_pwd">设置密保</string>
    <string name="quit_login">退出登录</string>
</resources>

2.设置界面逻辑代码

china.ynyx.heyunhui.activity包下新建SettingActivity.java文件
具体代码:SettingActivity.java

package china.ynyx.heyunhui.activity;

import android.support.v7.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import china.ynyx.heyunhui.R;

public class SettingActivity extends AppCompatActivity {

	private TextView tv_main_title,tv_back;
    private RelativeLayout rl_title_bar,rl_modify_psw,rl_security_setting,rl_exit_login;
    public static  SettingActivity instance=null;
    
    protected void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_setting);
        //设置此界面为竖屏
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        instance = this;
        init();
    }

    //    获取界面控件
	private void init() {
		// TODO Auto-generated method stub
		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_pwd);
        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) {
                //跳转到修改密码的界面
            }
        });
        
        //设置密保的点击事件
        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) {
                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();
            }

        });
	}

	//	清除SharePrederences中的登录状态和登录时的登录名
	private void clearLoginStatus() {
		// TODO Auto-generated method stub
		SharedPreferences sp = getSharedPreferences("loginInfo",Context.MODE_PRIVATE);
        SharedPreferences.Editor editor =sp.edit();  //获取编辑器
        editor.putBoolean("isLogin",false);        //清除登录状态
        editor.putString("loginUserName","");    //清除用户名
        editor.commit();
	}
	
}

别忘了在AndroidManifest.xml里面注册

<activity android:name="china.ynyx.heyunhui.activity.SettingActivity"></activity>

3.功能完善

由于设置界面是通过“我”的界面跳转的,因此需要在“我”的界面逻辑代码方法中添加相应的代码。
MyInfoView.java文件中的initView()方法,在注释“//跳转到设置界面”(80行)下方添加如下代码,并导入相应的包。

Intent intent = new Intent(mContext,SettingActivity.class);
mContext.startActivityForResult(intent,1);

基于eclipse的android项目实战—博学谷(六)设置界面_第1张图片


参考资料:《android项目实战——博学谷》(黑马程序员著)

你可能感兴趣的:(Android)