Third Day:正式编程第三天,学习实践内容TextView跑马灯、AutoCompleteTextView、multiAutoCompleteTextView以及ToggleButton、checkedBox、RadioButton等相关实践
2、针对Focused的TextView跑马灯(文字较多一行无法显示)效果
针对单个TextView的跑马灯效果,可直接在TextView控件参数中添加三个属性:
android:singleLine="true"(一行显示会有省略号)
android:ellipsize="marquee"(一行显示无省略号)
android:focusable="true"
android:focusableInTouchMode="true"(最后两条结合使得单个TextView可实现效果)
针对两个或以上TextView或复杂结构的“跑马灯效果”实现需借助自定义控件,具体方法如下:
首先创建两个不同的TextView控件,并分别标明其各自的Id,然后新建一个类,该类继承自TextView,
在类方法里面将构造函数方法全部实现(通过右击找到Generate中的Constructor,依次双击全部构造类)
全部构造方法实现之后,另外添加public boolean isFocused(){return true;},最后再返回XML文件
中,将TextView控件全部换成自定义的 <com.sub.coder.MarqueeText ...>即可实现双跑马灯效果!
3、如何实现对AutoCompleteTextView(根据输入字符自动补全,类百度搜素框)的使用
第一步,拖放AutoCompleteTextView 控件,修改hint=“请输入您想要搜索的内容”并在.java文件中进行控件初始化操作
第二步,新建适配器(Adapter)并初始化数据源数组(用于匹配搜索内容)
第三步,将AutoCompleteTextView 控件与适配器(Adapter)进行绑定操作即可
另外注意,通过android:completionThreshold="2"控件属性设置可修改开始匹配时字符串个数
具体实现代码:package com.sub.coder;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
private AutoCompleteTextView acTextView;
private String[] res = {"beijing1","beijing2","bejing3","shanghai1","shanghai2"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
acTextView = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,res);
acTextView.setAdapter(adapter);
}
}
4、如何实现MultiAutoCompleteTextView(类似邮箱收件人的多重匹配功能),同上,需多设分割符代码,具体如下:
package com.sub.coder;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
private AutoCompleteTextView acTextView;
private MultiAutoCompleteTextView macTextView;
private String[] res = {"beijing1","beijing2","bejing3","shanghai1","shanghai2"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
acTextView = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,res);
acTextView.setAdapter(adapter);
macTextView = (MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView);
macTextView.setAdapter(adapter);
macTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
5、利用ToggleButton按钮和ImageView控件实现开关效果:
首先在XML文件中进行ToggleButton按钮和ImageView控件的建立,然后在.java中初始化他们,在本类中实现.OnCheckedChangeListener的接口,
然后在初始化完成之后进行一个方法监听 tb.setOnCheckedChangeListener(this);最后在实现接口时构建的方法中利用一个三目运算符进行当前
按钮状态的判断以及对应状态的图片切换。
package com.sub.coder;
import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
public class MyActivity extends Activity implements CompoundButton.OnCheckedChangeListener{
private ToggleButton tb;
private ImageView img;
private String[] res = {"beijing1","beijing2","bejing3","shanghai1","shanghai2"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tb = (ToggleButton)findViewById(R.id.toggleButton);
img = (ImageView)findViewById(R.id.imageView);
tb.setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
img.setBackgroundResource(isChecked?R.drawable.on:R.drawable.off);
}
}
Third Day:正式编程第三天,学习实践内容TextView跑马灯、AutoCompleteTextView、multiAutoCompleteTextView以及ToggleButton、checkedBox、RadioButton等相关实践的更多相关文章
- Android学习十二:跑马灯程序实现(简单联系)
package org.tonny; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; ...
- Android学习总结——TextView跑马灯效果
Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1.android:ellipsize="marquee" 2.TextView必须单行显示,即内容必须 ...
- Vue学习笔记四:跑马灯效果
目录 跑马灯原理 HTML 箭头函数 计时器 跑马灯效果 跑马灯原理 先讲讲跑马灯的原理,就是一行字,会滚动,思路是这样的,使用substring方法,一个获取字符串的第一个字,一个获取1后面所有的字 ...
- 《Linux命令、编辑器与shell编程》第三版 学习笔记---002
<Linux命令.编辑器与shell编程>第三版 学习笔记---001 Linux命令.编辑器与shell编程 Shell准备 1.识别Shell类型 echo $0 echo $BAS ...
- 022年9月12日 学习ASP.NET Core Blazor编程系列三——实体
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...
- 20155321 2016-2017-2 《Java程序设计》第三周学习总结
20155321 2016-2017-2 <Java程序设计>第三周学习总结 教材学习内容总结 4.1 类与对象 定义类用class关键字,建立实例用new关键字 一个原始码中可有多个类定 ...
- JDBC第三次学习
这是我的JDBC第三次学习了,在学习的过程中,老是会忘掉一些知识,不记下笔记实在不行啊! 使用JDBC调用存储过程 (1)关于如何使用Navicat(11.1.13) for MySQL如何创建存储过 ...
- 【转】apue《UNIX环境高级编程第三版》第一章答案详解
原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此 ...
- 转:JavaScript函数式编程(三)
转:JavaScript函数式编程(三) 作者: Stark伟 这是完结篇了. 在第二篇文章里,我们介绍了 Maybe.Either.IO 等几种常见的 Functor,或许很多看完第二篇文章的人都会 ...
随机推荐
- python之路:Day01 --- Python基础1
本节内容 1.Python介绍 2.发展史 3.变量 4.用户输入 5.表达式 if...else语句 6.表达式 for 循环 7.表达式 while 循环 8.模块初识 9.数据类型初识 10.数 ...
- 改变linux默认配色方案(dircolors和dircolors-solarized使用)
前言 前几天刚买了阿里云的云服务器,今天使用putty进入服务器,发现linux默认的bash配色实在太丑. 特别是文件夹显示为深蓝色,到了白天,和黑色背景一搭配,根本看不清文字. 好在在github ...
- OpenMesh 将默认的 float 类型改为 double 类型
OpenMesh 中默认的数据类型都是 float 类型的,如果要将其默认的 float 类型改为 double 类型,可以这么做: #include <OpenMesh/Core/Mesh/P ...
- HTTP请求应答服务——HTTP Request & Response Service
服务站点:https://httpbin.org/ Freely hosted in HTTP, HTTPS & EU flavors by Runscope DESCRIPTION Test ...
- activemq 控制面板里的 Number Of Pending Messages、 Messages Enqueued、Messages Dequeued含义
Number Of Consumers 消费者 这个是消费者端的消费者数量 Number Of Pending Messages 等待消费的消息 这个是当前未出队列的数量.可以理解为总接收数-总出队 ...
- EventLoop和EventLoopGroup
Netty框架的主要线程就是I/O线程,线程模型设计的好坏,决定了系统的吞吐量.并发性和安全性等架构质量属性.Netty的线程模型被精心地设计,既提升了框架的并发性能,又能在很大程度避免锁,局部实现了 ...
- 使用极光/友盟推送,APP进程杀死后为什么收不到推送(转)
为什么会存在这样的 问题,刚开始的时候我也搞不清楚,之前用极光的时候杀死程序后也会收到推送,但最近重新再去集成时就完全不好使了,这我就纳闷了,虽然Google在高版本上的android上面不建议线程守 ...
- LeetCode 387. First Unique Character in a String
Problem: Given a string, find the first non-repeating character in it and return it's index. If it d ...
- Angular动画(ng-class)
ng-class 同 触发的是 addClass//当给元素添加一个class时触发, removeClass //把元素的class移除时触发 <ul ng-style="ulWid ...
- http请求get与post请求的几种实现
[说明]:非原创,前两种post请求需要依赖Apache开源框架来实现:最后一种get/post请求则不需要依赖第三方框架 普通表单调用(post请求) /** * 普通表单调用 * 根据参数url, ...