• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android开发2:事件处理及实现简单的对话框,android开发

Android开发2:事件处理及实现简单的对话框,android开发

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android 长按事件,android返回键事件,android事件分发机制,android 事件分发,android 点击事件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android开发2:事件处理及实现简单的对话框,android开发


 

前言

  啦啦啦~又要和大家一起学习Android开发啦,博主心里好激动哒~

  在上篇博文中,我们通过线性布局和基础组件的使用,完成了一个简单的学生课外体育积分电子认证系统的界面,本篇博文,将和大家一起熟悉Button、RadioButton、EditText等基本控件,探讨能够处理这些控件的基本事件,学会弹出基本的对话框,能够定制对话框中的内容,能对确定和取消按钮的事件做处理。

 

基础知识

 

1、在 java 文件中引用布局文件中的控件

  在上一次实验中,在onCreateView(Bundle savedInstanceState) 方法中调用 setContentView()方法将布局加载进来。如果需要用到布局中的某些控件的话,首先需要给控件一个 id:

  

  定义 id 的语法和引用资源类似,@+id/id 名称,在同一个布局文件中不允许有重复的 id, 即使是不同控件也不行,但是不同的布局文件中可以使用同一个 id之后在 java 文件中将布局加载之后,也就是 setContentView()之后,使用 findViewById() 方法可以获得该控件:

  

   findViewById()方法带一个参数,就是刚刚定义的那个 id,参数形式为 R.id.XXX,其中 XXX 就是刚刚定义的那个 id,由于 findViewById()方法返回的是一个 View 类型,所以需要 强制类型转换为 Button 类型。

   获得这个 Button 之后,就可以对这个 Button 进行后续的操作了。 

 

2、弹出 Toast 信息

Toast在APP开发中会经常用到,自己在开发测试中也会用到,测试在还会Logcat窗口显示。 


Toast的主要方法: 
cancel 方法:关闭Toast视图 
getDuration 方法:获取持续时间 
getGravity 方法:获取Toast视图的位置 
makeText 方法:生成标准Toast 
setView 方法:设置显示的View物件 
getView 方法:获取View对象 
setGravity 方法:设置显示位置 
getXOffset 方法:获取水平方向偏移量 
getYOffset 方法:获取垂直方向偏移量 
setDuration 方法:设置持续时间 
setText 方法:设置显示的文本內容 
show 方法:显示提示

在需要弹出 Toast 信息的地方,写上:

  这个方法带三个参数,context,text,duration。context 是一个上下文类型,写上使用 这个方法的 java 类名加上.this 即可,text 是 Toast 要显示的信息,duration 是 Toast 显 示的时间长度,有 Toast.LENGTH_SHORT 和 Toast.LENGTH_LONG 可选,最后记得调用 show() 方法将 Toast 显示出来。

主要包含3种形式的Toast: 
1、标准形式 
2、设置位置形式 
3、带图片的Toast

函数代码如下:

MainActivity .java

import java.io.InputStream;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;

@SuppressLint("ShowToast")
public class MainActivity extends Activity {
    Toast   toast;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //初始化Toast的主要作用是,在点击按钮是可以先立刻消除上一个toast
        toast=Toast.makeText(getApplicationContext(), "", 0);;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public void Button1(View v){
        toast.cancel(); 
        toast=Toast.makeText(getApplicationContext(), "系统默认的样式", 1);

        toast.show();
    }  

    public void Button2(View v){
        //清除上一个toast,不会有显示延迟,更加美观。不知道这种方法是否好,如果好请留言,学习学习。
        toast.cancel(); 
        toast=Toast.makeText(getApplicationContext(), "设置Toast显示的位置", 1);
        toast.setGravity(Gravity.CENTER, 0, 0);

        toast.show();
        }
    public void Button3(View v){
        toast.cancel(); 
        toast=Toast.makeText(getApplicationContext(), "设置Toast显示图片和位置", 1);
        toast.setGravity(Gravity.CENTER, 0, 0);
        LinearLayout LinearToast = (LinearLayout) toast.getView();
        LinearToast.setOrientation(LinearLayout.HORIZONTAL);
        ImageView image = new ImageView(getApplicationContext());
        //为了美观,将图片缩小为原来的一半
        InputStream is =this.getResources().openRawResource(R.drawable.ic_launcher); 
        BitmapFactory.Options options=new BitmapFactory.Options(); 
        options.inJustDecodeBounds = false; 
        options.inSampleSize = 2;   //width,hight设为原来的二分一 
        Bitmap btp =BitmapFactory.decodeStream(is,null,options);
        image.setImageBitmap(btp);
        LinearToast.addView(image,0);
        toast.show();
    }

}

 

3、事件处理

下面以 Button 为例简单介绍一下事件处 理。

  要处理事件,首先要将与该事件有关的控件引入进来,比如要判断用户名是否为空,那么 除了 Button 需要引入外(因为 Button 是触发事件的主体),还需要引入用户名的输入框。 引入之后,button.setOnClickListener()中做处理,这里的 button 是一个变量名,记得 换成自己定义的变量名。

  

 

onClick 方法带的 view 参数是触发这个单击事件的控件的引用,在这个例子中,view 就是 触发事件的 Button,在 onClick()方法中做事件的处理,例如判断用户名是否为空:

关于EditText,Button,RadioGroup各自有的一些方法建议查看API 文档,不在这里一一说明了。

 

4、简单对话框的使用

Android 中最基本的对话框是 AlertDialog,之所以说它最简单,是因为布局和使用的方法 都很简单,布局是写好的。标题,通过 setTitle()方法设置;图标,通过setIcon()方法设置; 显示在中间的主要信息,通过 setMessage() 方法显示等。

AlertDialog.Builder创建对话框的几个常用方法:

setTitle() :设置标题
setIcon() :设置图标
setMessage():设置提示内容
setView() : 设置自定义视图
setItems() :设置对话框要显示的一个list
setMultiChoiceItems() :设置对话框显示的复选框
setNeutralButton() :普通按钮

setPositiveButton() :添加"Yes"按钮
setNegativeButton() :添加"No"按钮
create() : 创建对话框

show() :显示对话框

    显示 一 个 AlertDialog 的基本步骤如下:

 

  (1)创建 AlertDialog.Builder 对象

  (2)调用上面的方法进行设置

  (3)如果需要设置取消按钮,方法原型如下:

  

  (4)调用 AlertDialog.Builder 的

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android开发2:事件处理及实现简单的对话框,android开发
  • Android面试题--事件处理,android试题--事件

相关文章

  • 2017-05-26eclipse安装genymotion插件。,eclipsegenymotion
  • 2017-05-26显示当前光照强度,当前光照强度
  • 2017-05-26android全磁盘加密
  • 2017-05-26滑动关闭activity,滑动activity
  • 2017-05-26android handler传递消息机制,androidhandler
  • 2017-05-26Android消息机制之Handler,androidhandler
  • 2017-11-18android 权限拒绝时的问题解决(详解)
  • 2017-05-26AndroidStudio如何快速制作.so
  • 2017-05-26Android Intent调用 Uri的使用几种格式,androidintent
  • 2017-05-26国外干货!6个方法助你设计出优秀的APP,干货app

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 关于JNI的使用方法,JNI使用方法
    • Android动画解析(一)—— Frame Animation(帧动画)
    • Android仿ios底部弹出框效果,android仿ios底部
    • Android系统的“程序异常退出”,android退出
    • 我的android学习经历16,android学习经历16
    • Android之万能播放器解码框架Vitamio的介绍及使用,androidvitamio
    • Android生命周期,activity生命周期
    • 找不到draw9patch.bat?已经不用找了,draw9patch.bat
    • 回收ImageView占用的图像内存,imageview占用图像
    • 编译器开发系列--Ocelot语言2.变量引用的消解,编译器--ocelot

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有