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

来源:互联网 发布:战神诀披风进阶数据 编辑:程序博客网 时间:2024/05/01 22:27

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

<?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


}