您的位置:首页 > 其它

(droid分享)新浪微博开发系列【四】之登录界面

2012-09-26 20:19 357 查看
跳转到此界面是上次已经认证了,就可以从数据库里抓数据进行登录了,照例,贴代码,在此说明一下,可能代码里调用一些方法在本篇中没有,但是全部在我的代码里,也不要索取图片,要看全部代码的请移步/article/8913211.html

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

<!-- 此布局文件为登录界面的布局文件 -->

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

android:background="@drawable/background">

<RelativeLayout

android:layout_width="fill_parent"

android:layout_height="0dp"

android:layout_weight="80"

android:orientation="vertical" >

<RelativeLayout

android:id="@+id/iconBtn"

android:layout_width="90dp"

android:layout_height="80dp"

android:layout_above="@+id/selectLayout"

android:layout_centerHorizontal="true"

android:layout_marginBottom="20dip">

</RelativeLayout>

<LinearLayout

android:id="@+id/selectLayout"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true" >

<TextView

android:id="@+id/usernameEText"

android:layout_width="150dp"

android:layout_height="match_parent"

android:layout_weight="120"

android:background="#000000"

android:gravity="center"

android:padding="5dp"

android:maxLength="10"

android:paddingLeft="20dp"

android:textSize="25sp" />

<ImageButton

android:id="@+id/userselectImgBtn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginRight="1.0dip"

android:layout_weight="127"

android:contentDescription="@string/contnetdescription"

android:src="@drawable/imgbtn_more" />

<ImageButton

android:id="@+id/loginImgBtn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="5dip"

android:contentDescription="@string/contnetdescription"

android:src="@drawable/imgbtn_start" />

</LinearLayout>

</RelativeLayout>

<RelativeLayout

android:layout_width="fill_parent"

android:layout_height="40dip"

android:layout_weight="1"

android:background="#BB768e95" >

<LinearLayout

android:id="@+id/addLayout"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="vertical"

android:layout_alignParentLeft="true"

android:gravity="center"

android:layout_marginTop="3dp">

<ImageButton

android:id="@+id/useraddImgBtn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:contentDescription="@string/contnetdescription"

android:background="@drawable/icon_add">

</ImageButton>

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="#ffffff"

android:textSize="12dp"

android:text="@string/loginActivity_accountadd">

</TextView>

</LinearLayout>

<LinearLayout

android:id="@+id/exitLayout"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="vertical"

android:layout_centerInParent="true"

android:gravity="center"

android:layout_marginTop="3dp">

<ImageButton

android:id="@+id/exitImgBtn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:contentDescription="@string/contnetdescription"

android:background="@drawable/icon_exit">

</ImageButton>

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="#ffffff"

android:textSize="12dp"

android:text="@string/loginActivity_eixt">

</TextView>

</LinearLayout>

<LinearLayout

android:id="@+id/delLayout"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="vertical"

android:layout_alignParentRight="true"

android:gravity="center"

android:layout_marginTop="3dp">

<ImageButton

android:id="@+id/userdelImgBtn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:contentDescription="@string/contnetdescription"

android:background="@drawable/icon_delete">

</ImageButton>

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="#ffffff"

android:textSize="12dp"

android:text="@string/loginActivity_accountdel">

</TextView>

</LinearLayout>

</RelativeLayout>

</LinearLayout>



package com.czu.sinaweibo;

import java.io.IOException;

import java.net.MalformedURLException;

import java.util.List;

import com.czu.constdata.ConstDataSinaAPI;

import com.czu.databasehandler.UserInfoHandler;

import com.czu.utils.Global;

import com.czu.utils.Utils;

import com.czu.weiboHandler.WeiBoInfoPraser;

import com.czu.weiboadapter.WeiBoInfo;

import com.czu.weiboadapter.UserAdapter;

import com.czu.weiboadapter.UserInfo;

import com.weibo.android.R;

import com.weibo.net.WeiboException;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.Dialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.Window;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.Button;

import android.widget.ImageButton;

import android.widget.LinearLayout;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.Toast;

public class LoginActivity extends Activity {

// /*用来显示用户头像*/

// private ImageView userIconImageView=null;

/* 用来显示用户名 */

private TextView userNameTextView = null;

/* 单击该ImageButton来显示用户列表 */

private ImageButton userSelectImageButton = null;

/* 单击该按钮用来实现登录跳转到用户主页 */

private ImageButton loginImageButton = null;

/* SharedPreferences名 */

private String select_name = "userName";

// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

/* 设置没有标题栏 */

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.login_activity);

/* 获取一个EditText对象,用来设置用户名称 */

userNameTextView = (TextView) this.findViewById(R.id.usernameEText);

/* 初始化用户信息 */

initUserinfo();

/* 获取一个ImageButton对象,单击该按钮可以用户的选择 */

userSelectImageButton = (ImageButton) this

.findViewById(R.id.userselectImgBtn);

/* 为ImageButton绑定一个监听器,对该ImageButton进行监听 */

userSelectImageButton.setOnClickListener(new Button.OnClickListener() {

/* 当单击该按钮时,弹出一个dialog,用户进行选择 */

@Override

public void onClick(View v) {

UserInfoHandler userInfoHandler = new UserInfoHandler(

LoginActivity.this);

List<UserInfo> userInfos = userInfoHandler.GetUserList();

userInfoHandler.CloseDataBase();

if (!userInfos.isEmpty()) {

View diaView = View.inflate(LoginActivity.this,

R.layout.login_userlistdialog, null);

final Dialog dialog = new Dialog(LoginActivity.this,

R.style.dialog);

dialog.setContentView(diaView);

dialog.show();

UserAdapter adapter = new UserAdapter(LoginActivity.this);

final ListView listView = (ListView) diaView

.findViewById(R.id.userslistView);

listView.setVerticalScrollBarEnabled(false);

listView.setAdapter(adapter);

listView.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> adapter,

View view, int position, long id) {

TextView textView = (TextView) view

.findViewById(R.id.Itemusername_textView);

CharSequence charSequence = textView.getText();

userNameTextView.setText(charSequence);

dialog.dismiss();

/* 从数据库中检索出选择用户的信息,并且设置为当前用户 */

UserInfoHandler userInfoHandler = new UserInfoHandler(

LoginActivity.this);

UserInfo userInfo = userInfoHandler

.GetUserByName(userNameTextView.getText()

.toString());

Global.setCurrentUserInfo(userInfo);

userInfoHandler.CloseDataBase();

// System.out.println("user info:+"+userInfo.getUserName());

}

}); // end setOnItemClickListener

} else {

Toast.makeText(LoginActivity.this,

R.string.loginActivity_toaststring,

Toast.LENGTH_LONG).show();

}

}// end onClick

});

/* 对添加用户进行监听 */

LinearLayout adduserLayout = (LinearLayout) this

.findViewById(R.id.addLayout);

adduserLayout.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent(LoginActivity.this,

AuthorizeActivity.class);

// System.out.println("add user start AuthorizeActivity");

startActivity(intent);

/* 关闭当前的activity */

finish();

}

});

/* 对删除用户进行监听 */

LinearLayout deluserLayout = (LinearLayout) this

.findViewById(R.id.delLayout);

deluserLayout.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

final String currentUserName = userNameTextView.getText()

.toString();

if (!currentUserName.isEmpty()) {

Dialog dialog = new AlertDialog.Builder(LoginActivity.this)

.setTitle(R.string.loginActivity__attentiontitle)

.setMessage("是否删除" + currentUserName + "?")

.setPositiveButton(R.string.loginActivity__ok,

new DialogInterface.OnClickListener() {

public void onClick(

DialogInterface dialog,

int which) {

/* 点击确定后删除当前帐号 */

UserInfoHandler userInfoHandler = new UserInfoHandler(

LoginActivity.this);

UserInfo userInfo = userInfoHandler

.GetUserByName(currentUserName);

userInfoHandler

.DelUserInfo(userInfo

.getUserId());

List<UserInfo> userInfos = userInfoHandler

.GetUserList();

userInfoHandler.CloseDataBase();

if (userInfos.isEmpty()) {

userNameTextView.setText("");

} else {

userNameTextView

.setText(userInfos.get(

0)

.getUserName());

}

}

})

.setNegativeButton(R.string.loginActivity__cancel,

null).create();

dialog.show();

} else {

Toast.makeText(LoginActivity.this, "没有可以用户删除",

Toast.LENGTH_LONG).show();

}

}

});

/* 对退出软件进行监听 */

LinearLayout exitlLayout = (LinearLayout) this

.findViewById(R.id.exitLayout);

exitlLayout.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Dialog dialog = new AlertDialog.Builder(LoginActivity.this)

.setTitle(R.string.loginActivity_exitattention)

.setMessage(R.string.loginActivity_exitmessage)

.setPositiveButton(R.string.loginActivity__ok,

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog,

int which) {

Intent startMain = new Intent(

Intent.ACTION_MAIN);

startMain

.addCategory(Intent.CATEGORY_HOME);

startMain

.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(startMain);

android.os.Process

.killProcess(android.os.Process

.myPid());

}

})

.setNegativeButton(R.string.loginActivity__cancel, null)

.create();

dialog.show();

}

});

/* 获取一个ImageButton对象,单击该按钮可以用户的选择 */

loginImageButton = (ImageButton) this.findViewById(R.id.loginImgBtn);

/* 为ImageButton绑定一个监听器,对该ImageButton进行监听 */

loginImageButton.setOnClickListener(new Button.OnClickListener() {

@Override

public void onClick(View v) {

if(Utils.hasInternet(LoginActivity.this)){

Go();

}

else {

Toast.makeText(LoginActivity.this, "请检查您的网络连接!", Toast.LENGTH_SHORT).show();

Intent intent=new Intent("android.settings.SETTINGS");

startActivity(intent);

}

}

});

}// end onCreated

// /**保存用户的用户名*/

// @Override

// protected void onStop() {

//

// if(!userNameTextView.getText().toString().isEmpty()){

// SharedPreferences preferences=getSharedPreferences(select_name,

// MODE_PRIVATE);

// SharedPreferences.Editor editor=preferences.edit();

// editor.putString("name",userNameTextView.getText().toString());

// editor.commit();

// }

// super.onStop();

// }

/** 如果认证错误,那么转到AuthorizeActivity,如果认证成功就进入HomeActivity */

private void Go() {

if (!userNameTextView.getText().toString().isEmpty()) {

WeiBoInfoPraser informationParser = new WeiBoInfoPraser(this);

try {

List<WeiBoInfo> weiBoInfos = informationParser

.getWeiBoInfos(ConstDataSinaAPI.friends_timeline);

UserInfoHandler userInfoHandler = new UserInfoHandler(

LoginActivity.this);

UserInfo userInfo = userInfoHandler

.GetUserByName(userNameTextView.getText().toString());

Global.setCurrentUserInfo(userInfo);

userInfoHandler.CloseDataBase();

Intent intent = new Intent(LoginActivity.this,

MainActivity.class);

startActivity(intent);

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} catch (WeiboException e) {

Intent intent = new Intent(LoginActivity.this,

AuthorizeActivity.class);

// System.out.println("error start AuthorizeActivity");

startActivity(intent);

}

} else {

Toast.makeText(this, R.string.loginActivity_toaststring,

Toast.LENGTH_LONG).show();

}

/* 关闭当前的activity */

finish();

}

// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/** 初始化 */

private void initUserinfo() {

/* 从数据库中读取数据,并且将取出的值存放在userInfos中 */

UserInfoHandler userInfoHandler = new UserInfoHandler(this);

List<UserInfo> userInfos = userInfoHandler.GetUserList();

if (userInfos.isEmpty()) {

Intent intent = new Intent(LoginActivity.this,

AuthorizeActivity.class);

// System.out.println("userInfos.isEmpty start AuthorizeActivity");

startActivity(intent);

/* 关闭数据库 */

userInfoHandler.CloseDataBase();

/* 关闭当前的activity */

finish();

} else {

/* 从SharedPreferences中得到上一次的用户名称 */

SharedPreferences preferences = getSharedPreferences(select_name,

MODE_PRIVATE);

String str = preferences.getString("name", "");

UserInfo uInfo = null;

/* 当得到的字符串不为空时,就根据这个用户名从数据库中获取到用户的信息 */

if (!str.equals("")) {

System.out.println("str::::" + str);

uInfo = userInfoHandler.GetUserByName(str);

}

/* 如果为空时,则从数据库中读出第一条数据显 */

if (uInfo == null) {

uInfo = userInfos.get(0);

}

/* 设置用户名 */

userNameTextView.setText(uInfo.getUserName());

Global.setCurrentUserInfo(uInfo);

// System.out.println("userName"+uInfo.getUserName());

// System.out.println("userName"+uInfo.getUserId());

// System.out.println("userName"+uInfo.getAccessToken());

/* 关闭数据库 */

userInfoHandler.CloseDataBase();

}

}// end inituserinfo

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: