前天我们已经成功创建了第一个Android项目,如果我要把软件推荐给我的第一个用户,毫无疑问是从界面开始介绍。因为即使你的程序算法再高效,架构再出色,用户根本不会在乎这些,他们一开始只会对看到的东西感兴趣,今天我们就学习了如何更换布局(layout)。

 当然今天主要讲的还是 activity 页面中 Button 按钮的一个点击事件。在 java 中 点击事件弹出消息直接在 js 中 写 alter 即可。但是在 Android 中没那么简单。昨天我们学习了 java 的内部类。在 Android 点击事件中,我们主要使用的是 匿名内部类( anonymous inner class)

  因为布局(layout)属于资源文件,所以我们直接在res—>layout—>右键—>new—>others—>Android—>Android XML Layout File —> next—>填写layout名称—>Finish

下面给我们新new出的test1.xml部署一个button组件

复制我们所添加组件的id

  • android:layout_width 指定了当前元素的宽度
  • android:layout_height 指定了当前元素的高度  
  • android:text 指定了元素中显示的文字内容
  • wrap_content 表示当前元素的宽、高度只要能刚好包含里面的内容就行 

现在点击按钮没有任何的效果,因为我们还没有写事件,接下来就为按钮button1添加事件,有两种方法

1、MainActivity.java中添加匿名内部类

2、另写一个activity,然后再MainActivity.java中配置

通常情况下不建议在MainActivity.java写匿名内部类,因为所有的组键在MainActivity.java配置不好分析逻辑结构

下面是第二种方法MainActivity.java中写的配置及匿名内部类的注释

 package com.example.helloworld;

 import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast; public class Btn1ClickListener implements OnClickListener{ private Context context; public Btn1ClickListener(Context c) {
this.context = c;
} @Override
public void onClick(View arg0) {
Toast.makeText(context, "你很好 Android 1班", Toast.LENGTH_LONG).show();
} }
 package com.example.helloworld;

 import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast; public class MainActivity extends Activity { private Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
// TextView tv1 = (TextView) this.findViewById(R.id.textView1);
// tv1.setText("你好,Android 1班"); this.setContentView(R.layout.test);//布局layout名称
btn1 = (Button) findViewById(R.id.button1);//组件所代表的id
btn1.setText("点我咯"); btn1.setOnClickListener(new Btn1ClickListener(this));//尽可能减少new代码,交给容器(后加Spring框架 /* btn1.setOnClickListener(new OnClickListener(){
//匿名内部类
public void onClick(View v){ Toast.makeText(MainActivity.this, "你好 Android 1班", Toast.LENGTH_LONG).show(); }
});*/
}
}

下面运行看看我们的成果吧

今天小主用的是夜神模拟器

 菜鸟一枚的我,还在Android路上努力奔跑,各位大神多多指教喔!

Android之activity初讲的更多相关文章

  1. Activity(活动)-初讲

    是一种可以包含用户界面的组件,主要用于和用户进行交互. 上一次我们的MainActivity.java 是ADT帮我们自动创建的.手动创建Activity可以加深我们的理解和记忆,于是我们先自己手动创 ...

  2. Android零基础入门第73节:Activity初入门,创建和配置如此简单

    Activity是Android应用的重要组成单元之一,也是Android应用最常见的组件之一.前面看到的示例通常都只包含一个Activity或一个AppCompatActivity,但在实际应用中这 ...

  3. android开发------Activity生命周期

    这几天工作比较忙,基本没有什么时间更新播客了. 趁着今晚有点时间,我们来简单说一下什么是Activity生命周期和它们各阶段的特征 什么是生命周期 在还没有接触android开发的时候,听到有人说Ac ...

  4. Android之activity中新建控件

    了解了5大布局,我们会发现这些布局都是静态的,如何让系统自动生成控件呢?这就需要activity来帮忙了 今天我们讲的就是用activity新建布局 用案例来说吧! 实现一个输入行和列自动生成表格并生 ...

  5. 使用adb shell dumpsys检测Android的Activity任务栈

    谈起Android程序开发,就需要了解其四个主要的部件:Activity.Service.ContentProvider. BroadcastReceiver.而其中Activity是唯一直接控制程序 ...

  6. Android应用Activity、Dialog、PopWindow、Toast窗体加入机制及源代码分析

    [工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处.尊重劳动成果] 1 背景 之所以写这一篇博客的原因是由于之前有写过一篇<Android应用setCont ...

  7. Android之Activity系列总结(一)--Activity概览

    Activity 本文内容 创建 Activity 实现用户界面 在清单文件中声明 Activity 启动 Activity 启动 Activity 以获得结果 结束 Activity 管理 Acti ...

  8. Android中Activity启动过程探究

    首先追溯到Activity的启动,随便启动一个自己写的demo项目,使用DDMS进行debug标记,然后在Debug中把主线程暂停,可以看到调用栈.如下图所示: 于是我们先看android.app.A ...

  9. Android关于Activity生命周期详解

    子曰:溫故而知新,可以為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思想精 ...

随机推荐

  1. 修改使用phpstorm创建的模板的默认注释

     

  2. JS识记

    1.重新按照URL地址加载本页? window.location.reload(); 2.JS中实现命名空间一例? <script type="text/javascript" ...

  3. Windows安装包制作指南——Advanced Installer的使用

    1. 前言 最近需要制作windows的安装包,据说Advanced Installer比较强大,遂拿它来制作安装包.在网上少量资料以及官网简约文档中摸索前进,总算是制作出可用的安装包,在此记录,仅供 ...

  4. Web前端图表绘制JQuery插件jqplot

    在此之前使用了Chart.js.Highcharts,首先了解一下这两款插件的优势与不足,然后再来了解jqplot. 1.Chart Chart中文官网:http://chartjs.cn/ 1.1优 ...

  5. [platform]linux platform device/driver(三)--Platform Device和Platform_driver注册过程之代码对比

    转自:http://blog.csdn.net/thl789/article/details/6723350 Linux 2.6的设备驱动模型中,所有的device都是通过Bus相连.device_r ...

  6. Hadoop学习10--常用命令记录帖

    1.列出所有正在执行的任务 hadoop job -list 2.kill任务 hadoop job -kill 任务名

  7. Android学习笔记(八)

    android中常见空间的使用方法 1.TextView TextView主要用于在界面上显示一段文本信息,如下面代码所示: <LinearLayout xmlns:android=" ...

  8. MapReduce Shuffle原理 与 Spark Shuffle原理

    MapReduce的Shuffle过程介绍 Shuffle的本义是洗牌.混洗,把一组有一定规则的数据尽量转换成一组无规则的数据,越随机越好.MapReduce中的Shuffle更像是洗牌的逆过程,把一 ...

  9. view--4种Android获取View宽高的方式

    有时我们会有基于这样的需求,当Activity创建时,需要获取某个View的宽高,然后进行相应的操作,但是我们在onCreate,onStart中获取View的大小,获取到的值都是0,只是由于View ...

  10. sql查询指定范围内的所有月份

    ),) FROM master..spt_values WHERE type='P' AND DATEADD(MONTH,number,'2016-01-01')<='2017-01-01'