纯代码实现 Android 登陆布局.


下面代码实现的是 登陆 ,一点XML 配置都没有.看起来显然没有之前的使用XML配置 例子清晰.
  1. /**
  2.  * 
  3.  */
  4. package com.birds.android.login;
  5. import android.app.Activity;
  6. import android.app.AlertDialog;
  7. import android.app.AlertDialog.Builder;
  8. import android.content.DialogInterface;
  9. import android.os.Bundle;
  10. import android.text.InputFilter;
  11. import android.text.method.PasswordTransformationMethod;
  12. import android.view.View;
  13. import android.view.View.OnClickListener;
  14. import android.widget.Button;
  15. import android.widget.EditText;
  16. import android.widget.TableLayout;
  17. import android.widget.TableRow;
  18. import android.widget.TextView;
  19. /**
  20.  * @author birds
  21.  * @date 2008-11-22
  22.  * @file $
  23.  */
  24. public class LoginCodeUI extends Activity implements OnClickListener {
  25.     private static final int BUTTON_ID_OK = 5000000;
  26.     private static final int BUTTON_ID_CANCEL = 6000000;
  27.     private static final int TEXT_ID_ONE = 111111;
  28.     private static final int TEXT_PASSWD = 222222;
  29.     /*
  30.      * (non-Javadoc)
  31.      * 
  32.      * @see android.app.Activity#onCreate(android.os.Bundle)
  33.      */
  34.     @Override
  35.     protected void onCreate(Bundle savedInstanceState) {
  36.         super.onCreate(savedInstanceState);
  37.         TableLayout tableLayout = new TableLayout(this);
  38.         setContentView(tableLayout);
  39.         TableRow row1 = new TableRow(this);
  40.         tableLayout.addView(row1);
  41.         TextView view1 = new TextView(this);
  42.         view1.setText("账号名称:");
  43.         view1.setWidth(100);
  44.         EditText text1 = new EditText(this);
  45.         text1.setWidth(150);
  46.         text1.setSingleLine();
  47.         text1.setFilters(new InputFilter[] { new InputFilter.LengthFilter(15) });
  48.         text1.setId(TEXT_ID_ONE);
  49.         row1.addView(view1);
  50.         row1.addView(text1);
  51.         TableRow row2 = new TableRow(this);
  52.         tableLayout.addView(row2);
  53.         TextView view2 = new TextView(this);
  54.         view2.setWidth(100);
  55.         view2.setText("账号密码:");
  56.         EditText text2 = new EditText(this);
  57.         text2.setSingleLine();
  58.         text2.setWidth(150);
  59.         // 设置为密码模式
  60.         text2.setTransformationMethod(new PasswordTransformationMethod());
  61.         // 设置最大长度,为15
  62.         text2.setFilters(new InputFilter[] { new InputFilter.LengthFilter(15) });
  63.         text2.setId(TEXT_PASSWD);
  64.         row2.addView(view2);
  65.         row2.addView(text2);
  66.         TableRow row3 = new TableRow(this);
  67.         tableLayout.addView(row3);
  68.         Button b1 = new Button(this);
  69.         b1.setText("确定");
  70.         b1.setId(BUTTON_ID_OK);
  71.         b1.setOnClickListener(this);
  72.         Button b2 = new Button(this);
  73.         b2.setText("取消");
  74.         b2.setId(BUTTON_ID_CANCEL);
  75.         b2.setOnClickListener(this);
  76.         row3.addView(b1);
  77.         row3.addView(b2);
  78.     }
  79.     @Override
  80.     public void onClick(View v) {
  81.         EditText t1 = (EditText) findViewById(TEXT_ID_ONE);
  82.         EditText t2 = (EditText) findViewById(TEXT_PASSWD);
  83.         if (v.getId() == BUTTON_ID_OK) {
  84.             Builder alertDialog = new AlertDialog.Builder(this);
  85.             alertDialog.setPositiveButton("OK",
  86.                     new DialogInterface.OnClickListener() {
  87.                         public void onClick(DialogInterface v, int btn) {
  88.                             v.cancel();
  89.                         }
  90.                     });
  91.             alertDialog.setTitle("输入的信息:" + t1.getText() + " 密码:"
  92.                     + t2.getText());
  93.             alertDialog.show();
  94.         } else if (v.getId() == BUTTON_ID_CANCEL) {
  95.             t1.setText("");
  96.             t2.setText("");
  97.         }
  98.     }
  99. }
   xml配置布局的灵活性明显,代码主要 是逻辑功能的实现, 有点 MVC 的思想 .
   xml为视图配置,逻辑代码另写class,android事件监听 为控制器.




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值