Button

  1.button按钮的创建

    一般来说,在我们新建一个Android项目的时候,会有会默认有一个activity_main.xml的文件

    

如果你在新建项目的时候,把Create Activity没勾的话(下图是新建项目的时候的一个页面),就需要,新建一个

新建一个布局的方法

  layout -> 右键点击 -> new - > Android XML File 然后会弹出创建布局文件的窗口 。

  

好了,布局加载好了,现在进入我们的主题,添加一个按钮。

  首先,点击activity_main.xml文件,我们看到这样的一个界面

  

  那么我们要怎么创建按钮呢,其实很简单,只要把最左边的button拖到你设计的布局里面即可

这样我们的按钮就创建完,是不是很简单。

然后我们再看看在窗口的最下方有两个切换卡,左边是 Graphical Layout,右边是 activity_main.xml

  Graphical Layout 是当前的可视化布局编辑器,在这里你不仅可以预览当前的布局,还可以通过拖拽的方式编辑布局 (既是我们刚刚创建按钮的地方)

   activity_main.xml  则是通过 XML 文件的方式来编辑布局

activity_main.xml文件

 1 <RelativeLayout 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.example.hello.MainActivity" >
10
11 <TextView
12 android:id="@+id/textView1"
13 android:layout_width="wrap_content"
14 android:layout_height="wrap_content"
15 android:text="@string/hello_world" />
16
17 <Button
18 android:id="@+id/button1" 这个是你创建的按钮id,很重要的一个东西
19 android:layout_width="wrap_content" //这里可以控制按钮的长度
20 android:layout_height="wrap_content" //这里可以控制按钮的高度
21 android:layout_alignLeft="@+id/textView1"
22 android:layout_below="@+id/textView1"
23 android:layout_marginTop="26dp"
24 android:text="Button" /> 这里可以修改按钮的名字
25
26 </RelativeLayout>

对于button的介绍的差不多了,下面让我们搞点新意思吧。

  现在我们创建好的按钮,只能看,无论你在模拟器或手机上怎么点击都是没什么反应的,那么怎样才能让他有反应呢。

  相信学过网页的都知道我们差了点什么,没错,就是点击事件。

Android的点击事件是创建

  首先,我们打开打开项目下的src文件夹的com.example.项目名(系统会默认前缀是com.example开头的)下的MainActivity.java

  

 package com.example.hello;

 import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //定位textView1这个控件
TextView tv1 = (TextView) this.findViewById(R.id.textView1);
//对控件进行赋值,改变显示的内容
tv1.setText("你好,Android"); final TextView textview = (TextView)findViewById(R.id.textView2);
//根据id获取按钮的控件
Button btn = (Button) this.findViewById(R.id.button1);
//修改按钮的名字
btn.setText("点我");
//给按钮赋予点击事件
btn.setOnClickListener(new OnClickListener() {
36 @Override
37
38 public void onClick(View v) {
39
45 //第一个参数:上下文,指的是activity,所以写的是MainActivity.this
46 //第二个参数:设置弹出的信息
47 //第三个参数,设置显示的实践
48 Toast.makeText(MainActivity.this, "点解要点我", Toast.LENGTH_LONG).show();
49 }
50 });
51 } @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}

上面的就是一个简单的点击事件,首先我们要获取按钮的控件,findViewById(R.id.button1)就是根据button的id来获取他,就是上面说到了buttoon的id了。

然后我们看一下运行结果

  

这就是一个简单的按钮点击事件了

  或许大家对于Toast不理解,现在简单的介绍一下

  Toast 是 Android 系统提供的一种非常好的提醒方式, 在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间 


但是对于上面的写法大家是不是觉得好长好难看,那么下面我们来改良一下代码,然我们看的更舒服

首先我们新建一个类btnClickListen来继承Android的OnClickListener借口

 package com.example.hello;

 import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast; public class btnClickListen implements OnClickListener { private Context context; public btnClickListen (Context c) {
this.context = c;
} @Override
public void onClick(View v) {
Toast t = Toast.makeText(context, "点解要点我", Toast.LENGTH_LONG);
t.show(); } }
 package com.example.hello;

 import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //定位textView1这个控件
TextView tv1 = (TextView) this.findViewById(R.id.textView1);
//对控件进行赋值,改变显示的内容
tv1.setText("你好,Android"); final TextView textview = (TextView)findViewById(R.id.textView2);
//根据id获取按钮的控件
Button btn = (Button) this.findViewById(R.id.button1);
//修改按钮的名字
btn.setText("点我");
//给按钮赋予点击事件
btn.setOnClickListener( new btnClickListen(this)); } @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}

现在是不是好看很多了。

其实第二种两种方法是一样的,第一种其实就是我之前博客说的匿名内部类的一种写法。

最新文章

  1. [RT][NOIP2015]联合权值
  2. 现代Web应用开发者必备的六大技能
  3. [SAP ABAP开发技术总结]物料、生产、采购、销售长文本
  4. C#利用Attribute实现简易AOP介绍 (转载)
  5. 【转】谈一谈PHP字串清除空格函数不安全
  6. CSS3 照片墙
  7. 深入浅出 Java Concurrency (2): 原子操作 part 1
  8. struts2支持的结果处理类型
  9. Cacti监控Tomcatserver实现过程
  10. stock 当天盘势
  11. Oracle中SQL语句分类
  12. 基于PHP的颜色生成器
  13. 通过父元素的hover控制子元素的显示
  14. ELASTIC SEARCH 性能调优
  15. EF Core创建实体的Code First标准方法
  16. IOS TableView实现省市联动
  17. idea导入或者检出项目时发现编辑器左侧无法显示项目目录结构
  18. iOS App 上架(Analysis 工具使用)
  19. 数据库的备份与恢复(oracle 11g) (转)
  20. BZOJ4873 [Shoi2017]寿司餐厅 【最大权闭合子图】

热门文章

  1. c语言二叉树基本操作
  2. rabin 素性检验 随机化算法
  3. CSS——几个最新解决方案
  4. c++作用域运算符---7
  5. CC3000 SPI接口编程介绍
  6. Fragment使用findFragmentById返回null
  7. ps颜色模式
  8. node环境配置安装(nvm)
  9. 读文档readarx.chm
  10. 调试技巧--Windows端口号是否被占用