Android添加button并响应

1.首先要在activity_main.xml文件里新建两个button标签。

  

 1 <LinearLayout 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:orientation="vertical"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.fate.testproject.MainActivity" >
11
12     <TextView
13         android:layout_width="match_parent"
14         android:layout_height="wrap_content"
15         android:text="@string/total"
16         android:textSize="45sp"
17         android:layout_gravity="center"
18         android:gravity="center"
19         android:id="@+id/tvTotal"
20         />
21
22     <Button
23         android:layout_width="250sp"
24         android:layout_height="wrap_content"
25         android:text="@string/addOne"
26         android:layout_gravity="center"
27         android:textSize="20sp"
28         android:id="@+id/bAddOne"
29         />
30     <Button
31         android:layout_width="250sp"
32         android:layout_height="wrap_content"
33         android:text="@string/subOne"
34         android:layout_gravity="center"
35         android:textSize="20sp"
36         android:id="@+id/bSubOne"
37         />
38
39
40 </LinearLayout>

这里出现了几个问题。

  1)布局问题:我现在用的Android环境是最新的,新建工程下activity_main.xml文件自带布局并非LinearLayout线性布局。之前对照书上的内容跟网上视频教程总感觉不对劲。之后,改成了LinearLayout线性布局之后,又发现几个控件挤成一横排,控件甚至被挤出视图外面。原来线性布局默认的是横向的,不是我们所认为的竖向。这里添加一句

android:orientation="vertical",所有空间依次竖向排列。  2)硬性编码问题:在定义控件的宽度(width)和高度(height)的时候我使用了数值。一般人现在都知道如果用像素dx作为单位来定义控件的宽和高会出现warning的黄色警告。但是我在使用dp作为单位的时候也出现了warning,最后在提示下使用的是sp。还有,在定义Android:text的时候,不引用string下的元素而直接输入内容也会出现warning警告。这种硬性编码引起warning警告一般不会导致整个程序出错,但是良好的习惯和编程思路会减少出错的概率。  3)我在设置id的时候出现了个小毛病,写错了,将android:id="@+id/bSubOne"写成了android:id="@id/bSubOne"少了一个+号,导致程序完全运行不了,出现红色警报。千万细心。
2.其次在resources下的string.xml文件里添加元素
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <resources>
 3
 4     <string name="app_name">TestProject</string>
 5     <string name="hello_world">Hello world!</string>
 6     <string name="action_settings">Settings</string>
 7     <string name="total">总数为:0</string>
 8     <string name="subOne">数值减一</string>
 9     <string name="addOne">数值加一</string>
10
11 </resources>

将button的部分信息在这里添加,更加方便修改和管理。如果需要使用,直接引用。

3.在MainActivity函数中添加响应函数

 1 package com.fate.testproject;
 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.TextView;
10
11
12 public class MainActivity extends Activity {
13
14     int counter;//创建int变量counter
15     Button mAddOne, mSubOne;//创建两个button变量,分别是加一button和减一button
16     TextView mTotal;//创建TextView类型的变量mTotal
17
18     @Override
19     protected void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21         setContentView(R.layout.activity_main);
22
23
24         //初始化变量的值
25         counter = 0;
26
27         //关联两个button和TextView变量
28         mAddOne = (Button)findViewById(R.id.bAddOne);
29         mSubOne = (Button)findViewById(R.id.bSubOne);
30         mTotal = (TextView)findViewById(R.id.tvTotal);
31
32         //添加按钮单机响应函数
33         mAddOne.setOnClickListener(new View.OnClickListener() {
34
35             @Override
36             public void onClick(View v) {
37                 // TODO Auto-generated method stub
38                 counter++;
39                 mTotal.setText("总数为:" + counter);
40             }
41         });
42
43         mSubOne.setOnClickListener(new View.OnClickListener() {
44
45             @Override
46             public void onClick(View v) {
47                 // TODO Auto-generated method stub
48                 counter--;
49                 mTotal.setText("总数为:" + counter);
50             }
51         });
52     }
53
54
55     @Override
56     public boolean onCreateOptionsMenu(Menu menu) {
57         // Inflate the menu; this adds items to the action bar if it is present.
58         getMenuInflater().inflate(R.menu.main, menu);
59         return true;
60     }
61
62     @Override
63     public boolean onOptionsItemSelected(MenuItem item) {
64         // Handle action bar item clicks here. The action bar will
65         // automatically handle clicks on the Home/Up button, so long
66         // as you specify a parent activity in AndroidManifest.xml.
67         int id = item.getItemId();
68         if (id == R.id.action_settings) {
69             return true;
70         }
71         return super.onOptionsItemSelected(item);
72     }
73 }

简单的添加button只需要修改这三个工程下的文件就可以了。

这里我为了养成自己的习惯,让我写出来的代码更具有易读性。我在定义各个变量的时候是这样的。

  1)遵循定义名有意义,基本代表控件的内容或含义,并且尽量使用英文代表其含义。如:加一我会定义成addone

  2)一个控件的id,name,或者其他函数相关关联的定义会采用稍微不同的定义。如在string里的string name一般为小写字母开头,之后的每个单词首个大写;设置id则在前面添加其标签的缩写字母(如,button标签下的就在string name 前面添加字母b,并将b后第一个字母大写,TextView标签下则添加字母tv,并将tv后第一个字母大写);在其他函数如MainActivity函数中使用相关联的变量时,则在string name前面添加字母m,并将m后第一个字母大写。

  实例:创建一个加一按钮则string name就是addOne,id就是bAddOne,主函数相关联的函数变量就是mAddOne。

  3)注意分段,分行,让整个代码看起来有层次。方便阅读,方便修改。也能让自己写代码的时候心情更好,因为代码不可能是一次性写好写完,总要回头来修改查看,如果没有好的层次感,很难在看自己写的代码的时候有好心情,这不但影响工作和学习,还打击我们对开发的热情。

Android添加button并响应

时间: 2024-11-15 00:29:01

Android添加button并响应的相关文章

UIImageView上添加Button不能响应点击事件

UIImageView *backImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height-UITABBAR_HEIGHT-216-39, 320, 43) ]; [backImageView setUserInteractionEnabled:YES];//使添加其上的button有点击事件 [backImageView setImage:[UIImage imageNamed

android 添加全局TouchPanel响应范例

alps\frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java package com.android.internal.policy.impl; public class PhoneWindowManager implements WindowManagerPolicy { private static final int MSG_ENABLE_POINTER_LOCATION =

转:在android中button响应的两种方式

1. 在布局文件中添加button的监听名字 Android:onClick="buttonOnClick" 例如: <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/button1&q

关于Android的Button响应页面跳转问题

一般来说,Android应用程序中的Button响应事件有两种书写方式 Button button=null; button.setOnClickListener(new ButtonOnClickListener()); 下面再写一个监听的内部类 class ButtonOnClickListener  implements  OnClickListener { public void onClick(View v) { Intent intent = new Intent(); intent

android 添加桌面快捷方式

.在桌面创建快捷方式方法: 方法一:通过长按某一个应用程序的图标在桌面上创建启动该应用程序的快捷方式. 这个方法安装完程序都用户都能实现. 方法二:在应用程序中构建一个Intent,然后以Broadcast的形式通知Launcher创建快捷方式. 先看Launcher的AndroidMainfest.xml文件中InstallShortcutReceiver的注册信息: Xml代码   <!--设置wallpapaer的activity --> <!-- Intent received 

Android中Button的五种监听事件

简单聊一下Android中Button的五种监听事件: 1.在布局文件中为button添加onClick属性,Activity实现其方法2.匿名内部类作为事件监听器类3.内部类作为监听器4.Activity本身作为事件监听器,实现onClickListener5.外部类作为监听器 ButtonListenerActivity.class public class ButtonListenerActivity extends AppCompatActivity implements View.On

Android中button点击后字体的变色效果

button的点击效果无疑是非常简单的,以致于我懒到当UI告诉我说在点击的时候button字体的颜色也要随着背景改变的时候我毫不犹豫的告诉他让他切两个图过来,后来想想着实是不太靠谱,于是了解了一下如何添加button点击的字体颜色变化效果. 1.首先你要在你的color文件下加入几个你需要的色值,注意不同的是不是一般的color标签,而是drawable标签,就像这样: <drawable name="color_red">#fffa3d39</drawable>

Android 添加子视图(addView和setView)

我们在添加视图文件的时候有两种方式,一种是通过在xml文件定义layout,另一种方式是在java代码中动态生成布局文件. 在xml中定义的layout要想转化为view,需要使用到LayoutInflater类. 1.构造xml文件 2.LayoutInflater 提到addview,首先要了解一下LayoutInflater类.这个类最主要的功能就是实现将xml表述的layout转化为View的 功能.为了便于理解,我们可以将它与findViewById()作一比较,二者都是实例化某一对象

android添加账户源码浅析

上篇粗略的分析android添加账号的流程,本篇深入的解析下执行步骤.先来看图片,取自深入理解android卷2: 上图详细的分析了addAccount的流程,下面我们结合源码来理解它 1.addAccount:其实这里省略了一步,应该是客户端addAccount——>AddAccountSettings.addAccount——>AccountManager.addAccount.我们看下setting是如何到AccountManager: private void addAccount(S