package com.stone.shop.view; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.graphics.Bitmap; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import cn.bmob.v3.listener.SaveListener; import cn.bmob.v3.update.BmobUpdateAgent; import com.stone.shop.R; import com.stone.shop.model.User; import com.stone.util.Util; import com.tencent.connect.UserInfo; /** * 登陆界面 * * @date 2014-4-24 * @author Stone */ public class LoginActivity extends Activity implements OnClickListener{ @SuppressWarnings("unused") private static final String TAG = "LoginActicity"; private Button btnLogin; private Button btnReg; private Button btnResetPsd; private EditText etUsername; private EditText etPassword; private String username; private String password; @SuppressWarnings("unused") private static final String APP_ID = "101080318"; @SuppressWarnings("unused") private TextView backInfo; @SuppressWarnings("unused") private UserInfo mInfo; private TextView mUserInfo; private ImageView mUserLogo; private ImageView mNewLoginButton; //QQ登陆 // private Tencent mTencent; // private QQAuth mQQAuth; Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 0) { mUserInfo.setVisibility(android.view.View.VISIBLE); mUserInfo.setText(msg.getData().getString("nickname")); } else if (msg.what == 1) { Bitmap bitmap = (Bitmap) msg.obj; mUserLogo.setImageBitmap(bitmap); mUserLogo.setVisibility(android.view.View.VISIBLE); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); //Bmob自动更新组件 BmobUpdateAgent.setUpdateOnlyWifi(true); BmobUpdateAgent.update(this); //QQ登陆, 获取实例 // mQQAuth = QQAuth.createInstance(APP_ID, this.getApplicationContext()); // mTencent = Tencent.createInstance(APP_ID, this.getApplicationContext()); btnLogin = (Button) findViewById(R.id.btn_login); btnReg = (Button) findViewById(R.id.btn_register); btnResetPsd = (Button) findViewById(R.id.btn_reset_psd); etUsername = (EditText) findViewById(R.id.et_username); etPassword = (EditText) findViewById(R.id.et_password); btnLogin.setOnClickListener(this); btnReg.setOnClickListener(this); btnResetPsd.setOnClickListener(this); mUserInfo = (TextView) findViewById(R.id.user_nickname); mUserLogo = (ImageView) findViewById(R.id.user_logo); mNewLoginButton = (ImageView) findViewById(R.id.new_login_btn); mNewLoginButton.setOnClickListener(this); backInfo = (TextView) findViewById(R.id.user_callback); getUserInfo(); } private void getUserInfo() { SharedPreferences sp = getSharedPreferences("UserInfo", 0); etUsername.setText(sp.getString("username", null)); etPassword.setText(sp.getString("password", null)); } //保存用户的登陆记录 private void saveUserInfo(String username, String password) { SharedPreferences sp = getSharedPreferences("UserInfo", 0); Editor editor = sp.edit(); editor.putString("username", username); editor.putString("password", password); editor.commit(); } // private void updateUserInfo() { // if (mQQAuth != null && mQQAuth.isSessionValid()) { // IUiListener listener = new IUiListener() { // @Override // public void onError(UiError e) { // Toast.makeText(LoginActivity.this, "授权失败", 1000).show(); // } // // @Override // public void onComplete(final Object response) { // Toast.makeText(LoginActivity.this, "授权成功", 1000).show(); // JSONObject json = (JSONObject) response; // // 昵称 // Message msg = new Message(); // String nickname = null; // try { // nickname = ((JSONObject) response) // .getString("nickname"); // } catch (JSONException e) { // e.printStackTrace(); // } // msg.getData().putString("nickname", nickname); // msg.what = 0; // mHandler.sendMessage(msg); // // 头像 // String path; // try { // path = json.getString("figureurl_qq_2"); // MyImgThread imgThread = new MyImgThread(path); // Thread thread = new Thread(imgThread); // thread.start(); // } catch (JSONException e1) { // // TODO Auto-generated catch block // e1.printStackTrace(); // } // } // // @Override // public void onCancel() { // Toast.makeText(LoginActivity.this, "取消授权", 1000).show(); // // } // }; // // MainActivity.mTencent.requestAsync(Constants.GRAPH_SIMPLE_USER_INFO, // // null, // // Constants.HTTP_GET, requestListener, null); // mInfo = new UserInfo(this, mQQAuth.getQQToken()); // mInfo.getUserInfo(listener); // // } else { // // mUserInfo.setText(""); // // mUserInfo.setVisibility(android.view.View.GONE); // // mUserLogo.setVisibility(android.view.View.GONE); // } // } // // /** // * 开启线程 获取头像 // */ // class MyImgThread implements Runnable { // private String imgPath; // private Bitmap bitmap; // // public MyImgThread(String imgpath) { // this.imgPath = imgpath; // } // // @Override // public void run() { // // TODO Auto-generated method stub // bitmap = getImgBitmap(imgPath); // Message msg = new Message(); // msg.obj = bitmap; // msg.what = 1; // mHandler.sendMessage(msg); // } // } // // /** // * 根据头像的url 获取bitmap // */ // public Bitmap getImgBitmap(String imageUri) { // // 显示网络上的图片 // Bitmap bitmap = null; // HttpURLConnection conn = null; // InputStream is = null; // try { // URL myFileUrl = new URL(imageUri); // conn = (HttpURLConnection) myFileUrl.openConnection(); // conn.setDoInput(true); // conn.connect(); // // is = conn.getInputStream(); // bitmap = BitmapFactory.decodeStream(is); // is.close(); // } catch (IOException e) { // e.printStackTrace(); // return null; // } finally { // try { // conn.disconnect(); // is.close(); // is.reset(); // } catch (IOException e) { // e.printStackTrace(); // } // } // return bitmap; // } // // public void onClickLogin() { // // 登录 // if (!mQQAuth.isSessionValid()) { // // 实例化回调接口 // IUiListener listener = new BaseUiListener() { // @Override // protected void doComplete(JSONObject values) { // updateUserInfo(); // // updateLoginButton(); // if (mQQAuth != null) { // /////mNewLoginButton.setTextColor(Color.BLUE); // //////mNewLoginButton.setText("登录"); // } // } // }; // // "all": 所有权限,listener: 回调的实例 // // mQQAuth.login(this, "all", listener); // // // 这版本登录是使用的这种方式,后面的几个参数是啥意思 我也没查到 // mTencent.loginWithOEM(this, "all", listener, "10000144", // "10000144", "xxxx"); // } else { // // 注销登录 // mQQAuth.logout(this); // updateUserInfo(); // // // updateLoginButton(); // /////mNewLoginButton.setTextColor(Color.RED); // /////mNewLoginButton.setText("退出帐号"); // } // } // // /** // * 调用SDK封装好的借口,需要传入回调的实例 会返回服务器的消息 // */ // private class BaseUiListener implements IUiListener { // /** // * 成功 // */ // @Override // public void onComplete(Object response) { // backInfo.setText(response.toString()); // doComplete((JSONObject) response); // } // // /** // * 处理返回的消息 比如把json转换为对象什么的 // * // * @param values // */ // protected void doComplete(JSONObject values) { // // } // // @Override // public void onError(UiError e) { // Toast.makeText(LoginActivity.this, e.toString(), 1000).show(); // } // // @Override // public void onCancel() { // Toast.makeText(LoginActivity.this, "cancel", 1000).show(); // } // } @Override public void onClick(View v) { switch (v.getId()) { // 登陆 case R.id.btn_login: username = etUsername.getText().toString(); password = etPassword.getText().toString(); if( !Util.isNetworkConnected(this) ){ toast("亲, 木有网络 ( ⊙ o ⊙ ) "); } else if (username.equals("") || password.equals("")) { toast("亲, 请输入小菜账号和密码"); break; } else { User bu2 = new User(); bu2.setUsername(username); bu2.setPassword(password); bu2.login(this, new SaveListener() { @Override public void onSuccess() { toast("亲, 小菜来罗~"); //保存用户信息 saveUserInfo(username, password); // 跳转到主页 Intent toHome = new Intent(LoginActivity.this, BaseActivity.class); startActivity(toHome); finish(); } @Override public void onFailure(int arg0, String msg) { toast("亲, 用户名或密码错误"); } }); } break; case R.id.btn_reset_psd: Intent toResetPsdActivity = new Intent(LoginActivity.this, ResetPsdActivity.class); startActivity(toResetPsdActivity); break; case R.id.btn_register: Intent toReg = new Intent(LoginActivity.this, RegisterActivity.class); startActivity(toReg); break; // case R.id.new_login_btn: // onClickLogin(); // break; default: break; } } public void toast(String toast) { Toast.makeText(this, toast, Toast.LENGTH_SHORT).show(); } }