安卓天天练练(一)不讨巧的绝对布局

IDE 采用eclipse luna

使用了AbsoluteLayout标签后IDE立即开始警告:“AbsoluteLayout is deprecated”,不赞成使用绝对布局(无视它)

》需要注意

  • <Button />,<TextView />标签为自结束
  • <EditText></EditText>需要闭合标签,可以从Graphical Layout工具的Palette中TextView分类任意可编辑文本框拖出来
  • <ScrollView></ScrollView>需要闭合标签
  • 手生敲xml注意区分android:@+id/和@id/
  • objname.setOnClickListener不会自动完成,但是在其内部的new View.OnClickListener()可以自动生成重写以及定义onClick函数
  • 熟练使用(tagname)findViewById(R.id.xxx)
  • 书写getText().toString()和setText().toString()

src/com.narumi.absolutelayout/MainActivity.java

 1 package com.narumi.absolutelayout;
 2
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.view.Menu;
 6 import android.view.MenuItem;
 7 import android.view.View;
 8 import android.widget.Button;
 9 import android.widget.EditText;
10
11 public class MainActivity extends Activity {
12
13     @Override
14     protected void onCreate(Bundle savedInstanceState) {
15         super.onCreate(savedInstanceState);
16         setContentView(R.layout.activity_main);
17         final Button okButton  = (Button) findViewById(R.id.btnok);
18         final Button cancelButton = (Button) findViewById(R.id.btcel);
19         final EditText uid = (EditText) findViewById(R.id.etuid);
20         final EditText pwd = (EditText) findViewById(R.id.etpwd);
21         final EditText log = (EditText) findViewById(R.id.etres);
22         okButton.setOnClickListener(
23                 new View.OnClickListener() {
24
25                     @Override
26                     public void onClick(View v) {
27                         // TODO Auto-generated method stub
28                         String uidStr = uid.getText().toString();
29                         String pwdStr = pwd.getText().toString();
30                         log.append("用户名:"+uidStr+"密码:"+pwdStr+"\n");
31                     }
32                 } );
33
34         cancelButton.setOnClickListener(
35             new View.OnClickListener() {
36
37                 @Override
38                 public void onClick(View v) {
39                     // TODO Auto-generated method stub
40                     uid.setText("");
41                     pwd.setText("");
42                 }
43             } );
44     }
45
46     @Override
47     public boolean onCreateOptionsMenu(Menu menu) {
48         // Inflate the menu; this adds items to the action bar if it is present.
49         getMenuInflater().inflate(R.menu.main, menu);
50         return true;
51     }
52
53     @Override
54     public boolean onOptionsItemSelected(MenuItem item) {
55         // Handle action bar item clicks here. The action bar will
56         // automatically handle clicks on the Home/Up button, so long
57         // as you specify a parent activity in AndroidManifest.xml.
58         int id = item.getItemId();
59         if (id == R.id.action_settings) {
60             return true;
61         }
62         return super.onOptionsItemSelected(item);
63     }
64 }

下面两个自动生成的方法可以不要:

onCreateOptionsMenu

public boolean onOptionsItemSelected

编辑res/value中的string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Android_6_3</string>
    <string name="uid">用户名</string>
    <string name="pvd">密码</string>
    <string name="ok">确定</string>
    <string name="cancel">取消</string>
</resources>

编辑res/layout中的activity_main.xml

 1 <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7     android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context="com.narumi.absolutelayout.MainActivity" >
10
11     <TextView
12         android:id="@+id/tvuid"
13         android:layout_width="fill_parent"
14         android:layout_height="wrap_content"
15         android:text="@string/uid" />
16
17     <TextView
18         android:id="@+id/tvpwd"
19         android:layout_width="fill_parent"
20         android:layout_height="wrap_content"
21         android:layout_x="21dp"
22         android:layout_y="61dp"
23         android:text="@string/pvd" />
24
25     <EditText
26         android:id="@+id/etuid"
27         android:layout_width="167dp"
28         android:layout_height="wrap_content"
29         android:layout_x="61dp"
30         android:layout_y="-12dp"
31         android:ems="10"
32         android:inputType="text" >
33     </EditText>
34
35     <EditText
36         android:id="@+id/etpwd"
37         android:layout_width="168dp"
38         android:layout_height="34dp"
39         android:layout_x="59dp"
40         android:layout_y="55dp"
41         android:ems="10"
42         android:inputType="numberPassword" >
43     </EditText>
44
45     <ScrollView
46         android:id="@+id/scrollView1"
47         android:layout_width="wrap_content"
48         android:layout_height="wrap_content"
49         android:layout_x="48dp"
50         android:layout_y="144dp" >
51     </ScrollView>
52
53     <EditText
54         android:id="@+id/etres"
55         android:layout_width="wrap_content"
56         android:layout_height="139dp"
57         android:layout_x="31dp"
58         android:layout_y="260dp"
59         android:ems="10"
60         android:inputType="text" >
61
62     </EditText>
63
64     <Button
65         android:id="@+id/btnok"
66         android:layout_width="wrap_content"
67         android:layout_height="wrap_content"
68         android:layout_x="72dp"
69         android:layout_y="175dp"
70         android:text="@string/ok" />
71
72     <Button
73         android:id="@+id/btcel"
74         android:layout_width="wrap_content"
75         android:layout_height="wrap_content"
76         android:layout_x="165dp"
77         android:layout_y="175dp"
78         android:text="@string/cancel" />
79
80 </AbsoluteLayout>

就这么简单,一练结束。

时间: 2024-10-10 23:47:03

安卓天天练练(一)不讨巧的绝对布局的相关文章

安卓天天练练(十二)进度条

又是一个安卓自带的方便控件,不用我html/css/js自己写了. 用可视化面板拖进去以后 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_hei

安卓天天练练(六)红黄绿灯作业

提不起兴趣做作业的话将来也提不起兴趣做项目需求. 所以,不要畏难,不要懒. 制作两组红黄绿交通灯,分别通过状态开关可打开和关闭交通灯 在打开状态下,设置单选按钮可设置红.黄.绿灯之间的切换时间,这个对全局有效 通过多选按钮来设置是否可打开第一组还是打开第二组交通灯的权限,只有当选择为打开时才允许通过状态开关打开交通灯,反之则不允许操作

安卓天天练练(五)CompoundButton

toggleButton 让我想起了从前jQuery还没有取消toggle方法的时候偷的懒.. package com.example.android_8_1; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.CompoundButton; import android.widge

安卓天天练练(七)轮播图

也算不上轮播,只是有两个按钮用来刷出上一张和下一张的图片. 先拖元件,新建string <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_heigh

安卓天天练练(十三)星星评分

这玩意用html做可麻烦了 <RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true"

安卓开发技巧一:深入理解Android布局中Layout_weight的属性

今天开始将要为大家介绍一些安卓开发过程将要用到的一些技巧,这些技巧全部来自网络搜集,或者自己在企业做项目的时候总结出来的,利用这些技巧将会对我们开发带来非常方便的便捷性. 先来记录一下这一段时间的技巧目录,方便大家以后方便查阅(大概有不到三十种的技巧总结,大概每周分享两个技巧,笔者将尽可能写的详细,以及提供实例源码): 安卓开发技巧一:深入理解Android布局中Layout_weight的属性 安卓开发技巧二:自定义日志工具类 安卓开发技巧三:Activity的启动模式 安卓开发技巧四:分享一

(安卓)基本的UI控件和布局文件知识要点

文本控件 - TextView - EditText 按钮控件 - Button - ImageButton状态开关按钮 - ToggleButton 单选与复选按钮 - CheckBox - RadioButton 图片控件 - ImageView 时钟控件 - AnalogClock - DigitalClock 日期与时间选择控件 - DataPicker - TimePicker 布局文件: LinearLayout和RelativeLayout 共有属性:java代码中通过btn1关联

安卓Design包之CollapsingToolbarLayout(可折叠的工具栏布局)的简单使用

转自: CollapsingToolbarLayout的使用 注意:使用前需要添加Design依赖包,使用toolbar时需要隐藏标题头 CollapsingToolbarLayout作用是提供了一个可以折叠的Toolbar,它继承至FrameLayout,给它设置layout_scrollFlags,它可以控制包含在CollapsingToolbarLayout中的控件(如:ImageView.Toolbar)在响应layout_behavior事件时作出相应的scrollFlags滚动事件(

安卓使用merge标签和include优化UI布局

转自:http://blog.sina.com.cn/s/blog_62f987620100sf13.html 单独将<merge />标签做个介绍,是因为它在优化UI结构时起到很重要的作用.目的是通过删减多余或者额外的层级,从而优化整个Android Layout的结构.核心功能就是减少冗余的层次从而达到优化UI的目的! 将通过一个例子来了解这个标签实际所产生的作用,这样可以更直观的了解<merge/>的用法. 建立一个简单的Layout,其中包含两个Views元素:ImageV