EX09_01.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:4k
源码类别:

android开发

开发平台:

Java

  1. package irdc.EX09_01;
  2. import android.app.Activity; 
  3. import android.app.AlertDialog; 
  4. import android.content.DialogInterface; 
  5. import android.content.Intent; 
  6. import android.os.Bundle; 
  7. /*必须引用util.DisplayMetrics类来取得屏幕分辨率*/
  8. import android.util.DisplayMetrics; 
  9. import android.util.Log; 
  10. import android.view.LayoutInflater; 
  11. import android.view.View; 
  12. import android.widget.AbsoluteLayout; 
  13. import android.widget.EditText; 
  14. import android.widget.TextView; 
  15. public class EX09_01 extends Activity 
  16.   /*声明变量*/
  17.   private TextView mTextView01; 
  18.   private LayoutInflater mInflater01; 
  19.   private View mView01; 
  20.   private EditText mEditText01,mEditText02; 
  21.   private String TAG = "HIPPO_DEBUG"; 
  22.   /* 中文字的间距 */ 
  23.   private int intShiftPadding = 14; 
  24.    
  25.   /** Called when the activity is first created. */ 
  26.   @Override 
  27.   public void onCreate(Bundle savedInstanceState) 
  28.   { 
  29.     super.onCreate(savedInstanceState); 
  30.     setContentView(R.layout.main); 
  31.      
  32.     /* 创建DisplayMetrics对象,取得屏幕分辨率 */ 
  33.     DisplayMetrics dm = new DisplayMetrics();  
  34.     getWindowManager().getDefaultDisplay().getMetrics(dm); 
  35.      
  36.     mTextView01 = (TextView)findViewById(R.id.myTextView1); 
  37.      
  38.     /* 将文字Label放在屏幕右上方 */
  39.     mTextView01.setLayoutParams 
  40.     ( 
  41.       new AbsoluteLayout.LayoutParams(intShiftPadding*mTextView01.getText().toString().length(),18,(dm.widthPixels-(intShiftPadding*mTextView01.getText().toString().length()))-10,0) 
  42.     ); 
  43.      
  44.     /* 处理用户点击TextView文字的事件处理 -登录*/ 
  45.     mTextView01.setOnClickListener(new TextView.OnClickListener() 
  46.     { 
  47.       @Override 
  48.       public void onClick(View v) 
  49.       { 
  50.         // TODO Auto-generated method stub 
  51.          
  52.         /* 显示登录对话框 */  
  53.         showLoginForm(); 
  54.       } 
  55.     }); 
  56.   } 
  57.    
  58.   /* 自定义登录对话框函数 */ 
  59.   private void showLoginForm() 
  60.   { 
  61.     try 
  62.     {  /* 以LayoutInflater取得主Activity的context */ 
  63.       mInflater01 = LayoutInflater.from(EX09_01.this); 
  64.       /* 设置创建的View所要使用的Layout Resource */ 
  65.       mView01 = mInflater01.inflate(R.layout.login, null); 
  66.        
  67.       /* 账号EditText */ 
  68.       mEditText01=(EditText)mView01.findViewById(R.id.myEditText1);
  69.        
  70.       /* 密码EditText */ 
  71.       mEditText02=(EditText)mView01.findViewById(R.id.myEditText2);
  72.       
  73.       /*创建AlertDialog窗口来取得用户账号密码*/  
  74.       new AlertDialog.Builder(this) 
  75.       .setView(mView01) 
  76.       .setPositiveButton("OK", 
  77.       new DialogInterface.OnClickListener() 
  78.       { 
  79.         /*覆盖onClick()来触发取得Token事件与完成登录事件*/
  80.         public void onClick(DialogInterface dialog, int whichButton) 
  81.         { 
  82.           if(processGoogleLogin(mEditText01.getText().toString(), mEditText02.getText().toString())) 
  83.           { 
  84.             Intent i = new Intent(); 
  85.             /*登录后调用注销程序(EX09_01_02.java)*/
  86.             i.setClass(EX09_01.this, EX09_01_02.class); 
  87.             startActivity(i); 
  88.             finish(); 
  89.           } 
  90.         } 
  91.       }).show(); 
  92.     } 
  93.     catch(Exception e) 
  94.     { 
  95.       e.printStackTrace(); 
  96.     } 
  97.   } 
  98.   /*调用GoogleAuthSub来取的Google账号的Authentication Token*/
  99.   private boolean processGoogleLogin(String strUID, String strUPW) 
  100.   { 
  101.     try 
  102.     { 
  103.       /*建构自定义的GoogtleAuthSub对象*/
  104.       GoogleAuthSub gas = new GoogleAuthSub(strUID, strUPW); 
  105.       /*取得Google Token*/
  106.       String strAuth =  gas.getAuthSubToken(); 
  107.       /*将取回的Google Token写入log中*/
  108.       Log.i(TAG, strAuth); 
  109.        
  110.     } 
  111.     catch (Exception e) 
  112.     { 
  113.       e.printStackTrace(); 
  114.     } 
  115.     return true; 
  116.   }