Android开发基础4:事件处理和交互实现程序设计

这篇具有很好参考价值的文章主要介绍了Android开发基础4:事件处理和交互实现程序设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

应用前提:Android开发中,事件是用户对图形界面的操作,Android应用程序通过事件和信息来实现人机交互。

事件包括:按下、弹起、滑动、双击。

信息包括:信息框、对话框、通知。

本节学习和Android中与事件处理和交互相关的组件及知识。

每个工程下面的模块必须做的工作!

布局文件.xml中必须设置的是:根目录为<LinearLayout>,里面添加android:orientation的方向属性为vertical。

1.Toast--显示信息提示框

应用场景:App注册界面,用户发送手机号码进行验证时,用户单击“发送验证码”后,页面下方会出现一条信息“已发送,请注意查收”。信息出现3~5s然后自动消失。这样的就是Toast提示信息。

但是注意:我们常说这种提示信息是和对应事件匹配使用。比如点击--按钮,就需要在点击按钮时设置Toast提示框。

1.1.常用的两个方法:

(1).makeText(Context context,CharSequence text,int duration)创建一个Toast。context的参数为上下文MainActivity、text为Toast提示内容:字符串、duration为Toast停留时间:LENGT_SHORT/LENGTH_LONG。

(2).show()显示这个Toast

    *    .setGravity(int gravity,int xOffset,int yOffset)设置Toast的位置。

    *    .addView(图片名称)设置Toast的图片。

1.2.步骤:

(1)在xml布局文件中添加Button控件(按钮控件)。

(2)在java类文件中创建Button对象,并在onCreate方法中使用findViewById(R.id.按钮id名)将Button对象和对应布局文件的控件绑定。

(3)使用Toast类的方法makeText和show方法创建和显示Toast。ex:Toast.makeText(上下文MainActivity.this,“在Toast要显示的字符串”,Toast.LENGTH_SHORT(显示时间长短)).show()     

   1.3.Toast种类:

普通的Toast提示框:

Toast.makeText().show()

带有图片的Toast提示框:

1.4.代码及结果

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btnok"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="ok"
        android:layout_margin="10dp"
        android:textSize="50sp"/>

</LinearLayout>
public class MainActivity extends AppCompatActivity {
    Button btnok;
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btnok=findViewById(R.id.btnok);
        btnok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast t=Toast.makeText(MainActivity.this,"已经确认",Toast.LENGTH_SHORT);
                t.show();
                 //show显示Toast
                t.setGravity(Gravity.CENTER,0,0);
                //setGravity设置Toast的位置,这个Gravity.CENTER,0,0就正好在中间
                ImageView image1=new ImageView(MainActivity.this);
                image1.setImageResource(R.mipmap.ic_launcher);
                LinearLayout toastview=(LinearLayout) t.getView();
                toastview.addView(image1);//添加到线性布局中显示,这样就可以显示图片了

                Toast.makeText(MainActivity.this,"ok",Toast.LENGTH_SHORT).show();
}

Android开发基础4:事件处理和交互实现程序设计

 

2.AlertDialog对话框:

应用场景:在APP界面中选择退出时,通常会弹出一个对话框,让用户选择是否退出,这种提示框就是Dialog提示框,内容包括:内容:图标、标题、内容、按钮。需要用户做出决定再继续行动。

1.1.常用的方法

(1).setIcon(int iconId)方法.设置Dialog图标。

(2).setTitle(CharSequence  message)方法,设置Dialog图标。

(3).setMessage(CharSequence message)方法,设置Dialog内容。

(4).setPostiveButton(CharSequence text,DialogInterface.OnClickListener listener)方法,设置确认按钮

(5).setSingleChioceItems(CharSequence[] items,intcheckItem,android.content.DialogInterface.OnClickListener listener)设置单选列表

(6).create()方法,创建Dialog。

(7).show()方法,显示Dialog。

1.2.步骤

(1)创建AlertDialog类下面的构造器Builder。

(2)Builder调用方法设置对话框样式。设置对话框图标:setIcon;设置对话框标题:setTitle;设置对话框按钮setPositiveButton“确定”键按钮;setNegativeButton”取消“键按钮;setNeutralButton"忽略"按钮。

(3)Builder.create().show()创建展示对话框。Builder调用AlertDialog类的create()和show()按钮创建并显示对话框。

Android开发基础4:事件处理和交互实现程序设计

1.3Dialog种类

普通对话框

单选对话框

多选对话框

1.4代码及结果

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btnok"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="ok"
        android:layout_margin="10dp"
        android:textSize="50sp"/>
</LinearLayout>
public class MainActivity extends AppCompatActivity {
    Button btnok;
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btnok=findViewById(R.id.btnok);

 @Override
            public void onClick(View view) {
   //1.应该先创建Builder对象
                AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
                //最简单是提示框就是这四个部分,图标、标题,按钮,内容
                builder.setTitle("警告");
                builder.setIcon(R.mipmap.ic_launcher);
                // 普通对话框   builder.setMessage("是否退出系统");
                //单选对话框、多选对话框
                final String []city={"北京","上海","广州","成都"};
                builder.setSingleChoiceItems(city,0,null);
                builder.setPositiveButton("是", new DialogInterface.OnClickListener(){
                    @Override
                    public void onClick(DialogInterface dialogInterface,int i){
                        finish();
                    }
                });
                //注意构造器构造完成后,不要忘记使用create构造dialog
                builder.setNegativeButton("否",null);
                builder. setNeutralButton("忽略",null);
                AlertDialog dialog=builder.create();
                dialog.show();
            }
        });
}

Android开发基础4:事件处理和交互实现程序设计

 

3.Menu

应用场景:对内容或事件进行分类触发,菜单下面有子菜单。

1.1.常见方法:

1.2步骤:

(1).手动创建菜单资源文件--res-->右键选择Menu Resource Dictionary-->资源类型选择menu-->menu文件右键创建Menu Recource File。

   (2).menu.xml文件的根目录设置为<menu>,并在item菜单选项里面填写属性。id,title。

(3).在java类文件中添加响应菜单选择的代码

Android开发基础4:事件处理和交互实现程序设计

Android开发基础4:事件处理和交互实现程序设计

 

1.4.代码及结果

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/add_item" android:title="添加"/>
    <item android:id="@+id/delete_item" android:title="删除"/>
    <item android:id="@+id/modify_item" android:title="修改"/>
    <item android:id="@+id/exit_item" android:title="退出"/>
</menu>

 

public class MainActivity extends AppCompatActivity {
 //重写获取菜单方法
    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        //R表示获取资源文件
        getMenuInflater().inflate(R.menu.main_menu,menu);
        boolean b = true;
        return b;
    }
    @SuppressLint("MissingInflate")
    //这个是Menu菜单的监听器,退出界面就会提示:单击了添加菜单

//这个是Menu菜单的监听器,退出界面就会提示:单击了添加菜单
    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item){
        switch(item.getItemId()){
            case R.id.add_item:
                Toast.makeText(MainActivity.this,"单击了添加菜单",Toast.LENGTH_SHORT).show();
                break;
            case R.id.modify_item:
                Toast.makeText(MainActivity.this,"单击了添加菜单",Toast.LENGTH_SHORT).show();
                break;
            case R.id.delete_item:
                Toast.makeText(MainActivity.this,"单击了添加菜单",Toast.LENGTH_SHORT).show();
                break;
            case R.id.exit_item:
                Toast.makeText(MainActivity.this,"单击了添加菜单",Toast.LENGTH_SHORT).show();
                finish();
                break;
            default:
        }
        return true;
    }

Android开发基础4:事件处理和交互实现程序设计

 

4.下拉列表框

应用场景:提供一系列可以供用户选择的列表项。下拉列表通常在右侧会有一个小三角图标。

1.1.常用方法:

1.2.步骤:

下拉列表--Sprinner控件
1.在xml布局文件中添加spinner控件
2.定义对象--绑定控件--设置下拉列表项--创建适配器Adapter--让控件显示数据

Q:为啥没有显示下拉框?--因为你没有写Android:orientation=“vertical”。
 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Spinner
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/sn_course"/>
    <!--   下拉列表在xml布局文件中无法设置下拉选项-->

</LinearLayout>
public class MainActivity extends AppCompatActivity {
    Spinner sncource;
    //步骤三--设置spinner下拉列表项
    private String[] course={"语文","数学","英语","政治","历史"};
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btnok=findViewById(R.id.btnok);
        //步骤1--
        sncource=findViewById(R.id.sn_course);
        ArrayAdapter adapter=new ArrayAdapter(MainActivity.this, android.R.layout.simple_spinner_dropdown_item,course);
        sncource.setAdapter(adapter);
        sncource.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                TextView tv=(TextView) view;
                String str=tv.getText().toString();
                Toast.makeText(MainActivity.this,"你选的课程是"+i+"门课程:"+str,Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });

 //1.应该先创建Builder对象
                AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
                //最简单是提示框就是这四个部分,图标、标题,按钮,内容
                builder.setTitle("警告");
                builder.setIcon(R.mipmap.ic_launcher);
                // 普通对话框   builder.setMessage("是否退出系统");
                //单选对话框、多选对话框
                final String []city={"北京","上海","广州","成都"};
                builder.setSingleChoiceItems(city,0,null);
                builder.setPositiveButton("是", new DialogInterface.OnClickListener(){
                    @Override
                    public void onClick(DialogInterface dialogInterface,int i){
                        finish();
                    }
                });
                //注意构造器构造完成后,不要忘记使用create构造dialog
                builder.setNegativeButton("否",null);
                builder. setNeutralButton("忽略",null);
                AlertDialog dialog=builder.create();
                dialog.show();
            }
        });
}

Android开发基础4:事件处理和交互实现程序设计

 

5.弹出式的菜单--上下文菜单

如何显示弹出式的菜单--上下文菜单

1.创建菜单资源(与选项菜单实现方法相同)
2.注册要使用菜单的控件
    registerForContextMenu(控件变量名)
3.重写onCreateContextMenu方法获取上下文菜单,方法中的语句中与onCreateOptonsMene一致。

public void onCreateContextMenu(ContextMenu menu,View v,ContextMenu.ContextMenuInfo menuInfo){

super.onCreateContextMenu(menu,v,menuInfo);

getMenuInflater().inflate(R.menu.main_menu,menu);

}
4.重写onContextItemSelected方法监听选中的菜单项--任何事件都可以实现监听。
5.在控件中的事件中弹出菜单。如:

        btnok.setOnLongClickListener(new View.OnLongClickListener(){

@Override

public boolean onLongClick(View view){
view.showContextMenu();//显示菜单

return true;

}文章来源地址https://www.toymoban.com/news/detail-423724.html

到了这里,关于Android开发基础4:事件处理和交互实现程序设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用WPF开发自定义用户控件,以及实现相关自定义事件的处理

    在前面随笔《使用Winform开发自定义用户控件,以及实现相关自定义事件的处理》中介绍了Winform用户自定义控件的处理,对于Winform自定义的用户控件来说,它的呈现方式主要就是基于GDI+进行渲染的,对于数量不多的控件呈现,一般不会觉察性能有太多的问题,随着控件的数量

    2024年02月02日
    浏览(47)
  • 使用Winform开发自定义用户控件,以及实现相关自定义事件的处理

    在我们一些非标的用户界面中,我们往往需要自定义用户控件界面,从而实现不同的内容展示和处理规则,本篇内容介绍使用Winform开发自定义用户控件,以及实现相关自定义事件的处理。 对于比较规范的界面,需要进行一定的分析,以便从中找到对应的规则,逐步细化为自

    2024年02月03日
    浏览(39)
  • 【Unity】 基础交互入门(碰撞交互事件OnTriggerEnter和OnCollisionEnter)

    1、在场景中添加两个几何体(例如Cube和Sphere) 2、添加Rigidbody(刚体)component 点击Cube(正方体)对象,在面板找到这个按钮,添加component 搜索Rigidbody 默认状态下collider(碰撞)是被开启的。 3、创建C#脚本,增加OnTriggerEnter事件 4、将shpere(球体)设置为触发器,不需要添加

    2024年02月09日
    浏览(36)
  • 事件驱动编程:如何在应用程序中处理用户输入和交互

    [toc] 引言 1.1. 背景介绍 随着互联网技术的快速发展,应用程序被广泛应用于人们的生活和工作中。在这些应用程序中,用户输入和交互是必不可少的组成部分。如何优雅地处理用户输入和交互,让应用程序更加符合用户的使用习惯,是摆在每个程序员面前的一个重要问题。

    2024年02月07日
    浏览(52)
  • 鸿蒙开发笔记(二十七): 交互事件--手势

    gesture为通用的一种手势绑定方法,可以将手势绑定到对应的组件上。 例如,可以将点击手势TapGesture通过gesture手势绑定方法绑定到Text组件上。 priorityGesture是带优先级的手势绑定方法,可以在组件上绑定优先识别的手势。 在默认情况下,当父组件和子组件使用gesture绑定同类

    2024年01月25日
    浏览(38)
  • Flutter中为控件添加交互,带你一起探究Android事件分发机制

    ), ); } } 代码运行效果如图: 2.父widget管理widget的状态 对于父widget来说,管理状态并告诉其子widget何时更新通常是最有意义的。 例如,IconButton允许您将图标视为可点按的按钮。 IconButton是一个无状态的小部件,因为我们认为父widget需要知道该按钮是否被点击来采取相应的处理

    2024年04月11日
    浏览(36)
  • 【Unity】 基础交互入门(按钮点击事件的三种方法)

    1、在资源面板创建C#脚本 2、创建点击事件需要执行的代码(这里以loadMain为例),新增一个叫OnStartButtonClick的Public方法。 可以选择生成或者调试,从VS更新代码到Unity。 3、场景中创建Button和empty(生成空的GameObject) 4、将代码挂在刚刚的GameObject上(这里将GameObject重命名为

    2024年02月09日
    浏览(42)
  • 鸿蒙开发笔记(二十六):交互事件--触摸,按键,鼠标,焦点

    交互事件按照触发类型来分类,包括触屏事件、键鼠事件和焦点事件。 触屏事件:手指或手写笔在触屏上的单指或单笔操作。 键鼠事件:包括外设鼠标或触控板的操作事件和外设键盘的按键事件。 鼠标事件是指通过连接和使用外设鼠标/触控板操作时所响应的事件。 按键事

    2024年01月24日
    浏览(40)
  • 【软件设计师07】程序设计语言与语言处理程序基础

    编译与解释、文法、正规式、有限自动机、表达式、传值与传址、多中程序语言特点 (逐渐降低考察比例,很少考察) 概念 文法类型 语法推导树 有限自动机 与正规式(重点) 常见问题:给一个串比如01、10、001等,看图中起点到终点能否连起来得到这样的串 正规式 是有限自

    2023年04月08日
    浏览(52)
  • 【Android开发】移动程序设计复习大纲

    一、 判断题 (共10小题,每题1分,共10分) 二、 单选题 (共10小题,每题1分,共10分) 三、 填空题 (共10小题,每空1分,共10分) 四、 简答题 (共4小题,每题10分,共40分) 五、 程序设计题 (共2小题,每空2分,共30分) 知识点: 1. Android 体系结构包含的层次及各层的特点。

    2024年02月01日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包