android开发之Toast组件

8 事件等待 这两种同步方案在线程无法进入临界区时都会让当前线程进入等待状态。一种是通过Sleep函数实现的,一种是通过让当前的CPU”空转“实现的,但这两种等待方式都有局限性:通过Sleep函数进行等待,并没有办法确定具体等待的时间,有可能出现。 阅读详情
package com.example.toast;
import android.os.Bundle;
import android.app.Activity;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener{    
    private Button but1;
    private Button but2;
    private Button but3;
    private Button but4;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button b1=(Button)findViewById(R.id.button1);
        b1.setOnClickListener(this);
        Button b2=(Button)findViewById(R.id.button2);
        b2.setOnClickListener(this);
        Button b3=(Button)findViewById(R.id.button3);
        b3.setOnClickListener(this);
        Button b4=(Button)findViewById(R.id.button4);
        b4.setOnClickListener(this);
    }    
    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 void onClick(View v) {
        // TODO Auto-generated method stub
        switch(v.getId()){
        case R.id.button1:
            toast1();
            break;
        case R.id.button2:
            toast2();
            break;
        case R.id.button3:
            toast3();
            break;
        case R.id.button4:
            toast4();
            break;    
        }
    }
    private void toast4() {
        // TODO Auto-generated method stub
        Toast t=new Toast(this);
        t.setGravity(Gravity.CENTER,0,0);
        
        ImageView iv=new ImageView(this);
        iv.setImageResource(R.drawable.ic_launcher);
        
        TextView tv=new TextView(this);
        tv.setText("图片信息");
        
        LinearLayout view=new LinearLayout(this);
        view.setOrientation(LinearLayout.HORIZONTAL);
        
        view.addView(iv);
        view.addView(tv);
        
        t.setView(view);
        t.show();
    }

    //图文提示信息
    private void toast3() {
        //构建Toast对象
        Toast t=Toast.makeText(this, "图片属性", Toast.LENGTH_LONG);
        t.setGravity(Gravity.CENTER, 0, 0);//设置显示位置
        //获取图片
        ImageView iv=new ImageView(this);
        iv.setImageResource(R.drawable.ic_launcher);
        //由Toast对象获取Layout对象;同学A向老师申请要和同学B一起去表演
        LinearLayout view =(LinearLayout)t.getView();//向老师申请
        view.setOrientation(LinearLayout.HORIZONTAL);//设置该组件布局方式
        //老师将B同学一同去表演   插入图片组件
        view.addView(iv,0);
        t.show();
    }
    //图片提示信息
    private void toast2() {
        // TODO Auto-generated method stub
        Toast t=new Toast(this);
        t.setDuration(Toast.LENGTH_LONG);//设置时间
        
        ImageView iv=new ImageView(this);
        iv.setImageResource(R.drawable.ic_launcher);
        //将某个组件放到指定组件显示。在指定组件类设置
        t.setView(iv);
        //设置位置
        t.setGravity(Gravity.CENTER|Gravity.TOP,0,0);
        t.show();
    }
    //文本提示信息
    private void toast1() {
        //
        Toast t=Toast.makeText(this,"文本提示",Toast.LENGTH_LONG);
        t.show();
    }
}
基于FPGA的在线升级 基于FPGA的在线升级在线升级的意义在线升级的策略整体框架总结参考文献结束语 在线升级的意义 首先什么是FPGA的在线升级? 所谓FPGA的在线升级其实就是不对FPGA进行常规意义下的下载程序,便可以通过一些手段更新FPGA中的程序,一般用到的工具有ICAP原语、flash。那个该问题的解决将面临两个问题: 1、如何将新的FPGA程序下载到flash中; 2、如何让FPGA执行新的程序; FPGA... 阅读详情

相关推荐

Qt6.0高速在线安装 下载极速无需漫长等待

原创文|Space9 Qt自从5.15开始,不再提供编译后的独立安装包,只能在线安装。我们面临的最大问题是下载速度慢。本文通过使用国内镜像源来进行加速,高速安装最新版Qt6.0。 工具准备 工具名称 下载链接 Qt在线安装包 https://download.qt.io/official_releases/online_installers/qt-unified-windows-x86-online.exe nginx http://nginx.org/download/nginx-1.

space9bug的博客 7314

消息提示Toast 列表组件ListView 实例示范

1、使用Toast实现,点击2个不同按钮,分别显示两种不同效果的消息提示。 2、编写一个列表程序。实现点击不同项,显示对应消息提示。(列表组件ListView)。 运行效果参考:

【多线程】阻塞等待(Blocking Wait)(以C++为例)

阻塞等待是多线程编程中的核心机制,指线程在条件不满足时暂停执行并释放CPU资源。相比忙等待(自旋锁),它更节约CPU但会增加上下文切换开销。C++中常见的阻塞等待场景包括:互斥锁(std::mutex)获取、条件变量(std::condition_variable)等待、线程join操作、带超时的等待以及future/promise异步操作。合理使用阻塞等待能提高多线程程序效率,避免资源浪费。文章通过多个C++代码示例展示了不同阻塞等待的实现方式及其适用场景。

guigenyi的专栏 1431

android Toast实例

很实用的Toast例子,用于学习不错

vivado学习——在线调试

在线调试有多种方式,这里介绍一种快速入门的方式,添加lia核。ChipScopePro集成逻辑分析(ILA)IP核是一个可定制的逻辑分析核,用于监视设计中的内部信号。通过在RTL设计中嵌入ILA核,可以抓取信号的实时波形,帮助我们定位问题。 点击PROJECT MANAGER中的IP Catalog, 在IP Catalog的Search中输入ila,双击Debug &Verfication——Debug——ILA(Integrated Logic Analyzer), 在Gen.

u011565038的博客 1万+

自动化测试等待机制详解:Selenium与Playwright中的隐式、显式与强制等待

在软件自动化测试领域,等待机制是确保测试脚本稳定性的核心技术。其核心原理是通过同步测试脚本与应用程序的响应节奏,避免因页面加载或元素渲染延迟导致的“元素未找到”等常见错误。从技术价值看,合理的等待策略能显著提升自动化测试的可靠性和执行效率,减少误报。在应用场景上,无论是Web UI自动化测试还是移动端测试,等待机制都不可或缺。本文聚焦于Selenium和Playwright等主流测试框架中的三种等待策略:强制等待、隐式等待和显式等待,深入解析其适用场景与最佳实践,帮助开发者构建更健壮的自动化测试体系。

weixin_34242819的博客 506

全面掌握Android Toast应用技巧

本文还有配套的精品资源,点击获取 简介:在Android开发中,Toast是一种非常实用的提示机制,用于显示短暂的信息,如操作成功或失败提示。本文详细介绍了Toast的基本使用方法,包括创建Toast对象、设置显示位置、显示Toast、自定义View、取消Toast以及一些注意事项。同时,本文也探讨了Toast与Android UI元素的结合使用,帮助开发者提升应用用户体验...

weixin_42599908的博客 2414

【Linux】线程总结:初识、创建、等待、终止、分离

学习环境 :  Centos6.5 Linux 内核 2.6 Linux线程部分总结分为两部分:(1)线程的使用 ,(2)线程的同步与互斥。 第一部分线程的使用主要介绍,线程的概念,创建线程,线程退出,以及线程的终止与分离。第二部分主要介绍在多线程环境下,使用同步与互斥保护共享资源,有互斥锁,条件变量,信号量,以及读写锁。 第一部分开始 初识线程 线程:也称轻量级进程(Lightw

春风来不来的博客 9025

Android开发之Toast组件

Toast是一个简短的信息提示框,可以在一定的时间内进行显示,而后过一段时间,自动消失 .xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_w

751

Flyway执行无限等待的排查与解决:锁等待、连接池与迁移脚本优化

在应用启动过程中,数据库版本化迁移工具负责按序执行结构变更脚本,并通过元数据表记录每次迁移状态。其核心原理是确保多个环境下的数据库结构保持一致,但在真实生产场景中,由于资源竞争或配置不当,迁移任务可能出现长时间无响应,表现为应用启动卡死、线程停滞在JDBC调用或连接池获取阶段。常见的阻塞源头包括数据库锁与长事务冲突、连接池耗尽、大表上的慢SQL变更以及网络链路问题。理解这些底层机制,有助于工程团队快速定位故障边界,并通过配置超时、拆分脚本、监控会话等手段提升发布过程的稳定性。本文围绕Flyway迁移过程中的

weixin_33806859的博客 284

c# 关于启动一个等待MASK窗体盖住主窗体,任务完成后,关掉MASK窗体的总结

<br />许多时候, 点了某个按钮后,数据读写需要一段时间, 这时候,有的人需要来个小窗体,炫一炫,或者出于业务需要,不让用户进行任何操作.<br /> <br />1.先做一个窗体.<br />(1).窗体无边框.<br />(2).窗体透明度为0.01(1%), 调试时, 最好弄个红色的, 容易看清楚效果.<br />(3).背景色设成跟主窗体色调相近或一样的颜色.<br />(4).TopMost为真.<br />(5).UseWaitCursor为真.<br />(6).StartPosition

ZHENNIUBILE的专栏 2610

Android Toast组件的使用

Toast:显示一个小消息告诉用户一些必要信息,显示短时间自动消失,不会干扰用户操作。 Toast的使用: 首先定义一个Toast的触发点,然后通过findViewById()方法获取到在布局文件中定义的控件,返回一个View对象。通过View对象调用setOnClickListener()方法为按钮注册一个监听器,点击按钮就会执行Onclick的方法,进而显示Toast里面显示的内容。 Toas...

weixin_44708237的博客 387

DSP ti bootloader与在线升级

ti bootloader:SCI/SPI/CAN/I2C等特定的外设引脚,配合ti串口烧录工具(ti官网搜索controlSUITE下载安装,在ti目录下serial_flash_programmer.exe)通过PC cmd指令进行操作下载。 优点:可直接调用flashAPI(),不需额外的协议指令; 缺点:必须通过GPIO跳线使芯片进入对应的引导模式,比如CAN引导是一组电平组合,SCI引导...

debugcc2530的博客 1万+

Toast jar包

连续点击Toast值快速变化,优化体验

MFC 等待线程退出的方法

在MFC程序的主线程中如果使用WaitForSingleObject等线子线程,而子线程里使用了有关于消息的函数,比如SetWindowText,InsertItem,SetItemText这些函数,就有会导致主主线程阻塞问题优化函数OnBnClickedOk():主线程出现阻塞问题的原因是,因为SetWindowText调用了SendMessage,借助了消息循环,然后主线程又Waitxxxxx,必然会阻塞,最终导致工作线程Crash掉了。

qq_27704713的博客 1823

DSP之IAP在线升级

在实际工程项目应用时,人工烧录升级程序耗时长,效率低,接下来介绍一种利用程序来升级程序的在线升级方案。

weixin_44461841的博客 3924

项目:C++在线测评系统

项目思路 之前写过一个基于http的在线编译器,可以完成代码的编译过程,但是在leetcode上刷题的时候忽然想到在线OJ不就是一个功能更强大的在线编译器吗?在基础的编译功能上加上了题目列表页的展示,每个题目都有对应的序号,名称以及描述,于是想着能不能自己对这个项目再进行进一步的扩充 要实现一个简易的在线OJ,有几个大的模块需要去实现,最主要的是在线编译,编译功能可以在服务器上使用子进程进程替换使...

Gzmy的博客 4775

Java 多线程解密之wait等待

  在Java中,可以调用wait()方法使当前线程进入object的等待队列,这样当有新的任务需要执行的时候,调用object的notify()或者notifyAll()方法就可以唤起线程,wait(),notify()在线程池、数据库连接池有有广泛的应用。   其流程为:   首先我们知道,在获取对象的锁,也就是获取到其监视器,获取锁成功之后,则线程进入 RUNNABLE状态,即运行状态...

HappyHeng的博客 936
上一篇: android开发之 Canvas
下一篇: Android开发之dialog组件
Andy-HHHHH
博客等级 码龄14年 1粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值