您的位置:首页 > 数据库

新浪微博开发之授权用户登录的实现

2012-03-31 14:36 357 查看
已授权用户再次启动应用时,我们要从数据库中读取已授权用户信息,让用户选择要登录的用户名实现登录。并从数据库中读取token和tokenSecret进行初始化accessToken,为以后获取微博数据做准备!

登录界面:

                                                                            


布局就不上代码了,比较简单,直接上代码:

package com.cloay.weibo.ui;

import java.util.HashMap;

import weibo4android.Weibo;
import weibo4android.http.AccessToken;

import com.cloay.weibo.R;
import com.cloay.weibo.bean.UserInfo;
import com.cloay.weibo.constants.OAuthConstant;
import com.cloay.weibo.db.DataHelper;
import com.cloay.weibo.service.MainService;
import com.cloay.weibo.service.Task;
import com.cloay.weibo.utils.AlertDlgUtil;
import com.cloay.weibo.utils.CheckNetUtil;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;

/**
* 已授权用户登陆界面
* @author Cloay
* 2012-2-20
* 下午08:42:23
*/
public class LoginActivity extends Activity{
private DataHelper dataHelper;    //保存用户信息的数据库
private ImageView userIcon;       //用户头像
private EditText userName;       //用户昵称
private Button login;            //登录按钮
private UserInfo userInfo ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.login);
MainService.allActivity.add(this);

System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);

dataHelper = new DataHelper(this);
userInfo = dataHelper.GetUserList(true).get(0);  //从数据库读取已授权用户信息  这里需   注意1
System.out.println( "------userInfo: "+ userInfo);
//生成accessToken
AccessToken accessToken = new AccessToken(userInfo.getToken(), userInfo.getSecret());
OAuthConstant.getInstance().setAccessToken(accessToken);

userIcon = (ImageView) findViewById(R.id.user_icon);
userIcon.setImageBitmap(userInfo.getDrawable());           //设置用户头像
userName = (EditText) findViewById(R.id.user_Edit);
userName.setText(userInfo.getName());                    //用户名
login = (Button) findViewById(R.id.login);
login.setOnClickListener(new OnClickListener() {//点击登录直接进入主页

@Override
public void onClick(View v) {
if(CheckNetUtil.checkNet(LoginActivity.this)){ //先检查网络是否可用
Intent intent = new Intent(LoginActivity.this, MainActivity.class);   //跳转到微博主页
startActivity(intent);
LoginActivity.this.finish();
}else{
AlertDlgUtil.alertDialogNetErr(LoginActivity.this);
}
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(Menu.FIRST, 0, 0, R.string.user_instead).setIcon(R.drawable.switchuser);
menu.add(Menu.FIRST, 1, 1, R.string.exit_app).setIcon(R.drawable.menu_exit);
return true;

}

@Override
public boolean onContextItemSelected(MenuItem item) {
switch(item.getItemId()){
case 0:   //切换账号,使用新账号登录
Intent intent = new Intent(LoginActivity.this, OauthActivity.class);
startActivity(intent);
break;
case 1:   //退出程序
MainService.exitApp(LoginActivity.this);
break;
}
return true;
}

}

注意1:这里我只取出了第一个已授权的user,大家可取出全部让用户选择一个进行登录。

通过上述代码我们就实现了使用已授权用户登录了,通过accessToken使用Weibo类中的方法来请求API进行我们想要的操作!

有问题请留言,大家一起学习交流!

说明:转载请注明出处!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐