目录
AutoCompleteTextView
概述
字面翻译过来话....即自动完成文本框
效果就是 用户输入内容的时候,系统会自动给出补全提示的下拉(或上拉?)菜单
(类似于百度搜索,打一个关键字,下面下拉菜单出来一堆给你选)
EditText的子类
与它类似的还有一个MultiAutoCompleteTextView(能够识别分隔符)
属性
输入几个才进行提示
android:completionThreshold="3"
使用
使用和Spinner类似,在使用前先在res-----values里定义一个字符串数组,但是没有entires属性,所以得通过代码实现.
然后这里发现了一个华点
跟着视频学的安卓,视频里的人一直都会进行强制类型转换,发现好像补转换也没什么关系...
查了一下,果然是版本问题...
https://www.jianshu.com/p/2da8501d0308
public class MainActivity extends AppCompatActivity {
private AutoCompleteTextView autoCompleteTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
autoCompleteTextView = findViewById(R.id.autoCompleteTextView);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.my_array,android.R.layout.simple_dropdown_item_1line);
autoCompleteTextView.setAdapter(adapter);
}
}
效果如图....
可以看到代码和Spinner基本上是一样的.
ProgressBar
概述
翻译过来就是进度条的意思...
继承自View
主要作为操作进度的可视指示器,呈现操作进度,还具有一个次要的进度条,用于显示中间进度
(比如视频进度条,由一条总的,然后中间还有一条随着时间的推移在走的,话说这不应该才是主要的?)
形态
有两种,表盘形式和条形填充形式,如下图
通过下面的语句进行设置样式
水平:
style="?android:attr/progressBarStyleHorizontal"
表盘:
style="?android:attr/progressBarStyle"
属性
常见的属性,第一个表示最大值,第二个表示默认进度,第三个是第二进度条,就是淡粉色的那一块
其他的....
- android:max:进度条的最大值
- android:progress:进度条已完成进度值
- android:progressDrawable:设置轨道对应的Drawable对象
- android:indeterminate:如果设置成true,则进度条不精确显示进度
- android:indeterminateDrawable:设置不显示进度的进度条的Drawable对象
- android:indeterminateDuration:设置不精确显示进度的持续时间
- android:secondaryProgress:二级进度条,类似于视频播放的一条是当前播放进度,一条是缓冲进度,前者通过progress属性进行设置!
方法:
- getMax():返回这个进度条的范围的上限
- getProgress():返回进度
- getSecondaryProgress():返回次要进度
- incrementProgressBy(int diff):指定增加的进度
- isIndeterminate():指示进度条是否在不确定模式下
- setIndeterminate(boolean indeterminate):设置不确定模式下
出处:http://www.runoob.com/w3cnote/android-tutorial-progressbar.html
DialogProgress(进度条对话框)
进度条对话框----在API27已经过时
添加一个按钮,绑定一个点击事件 例如:
android:onClick="showDialogProgress"
再编写对应方法..
public void showDialogProgress(View v){
//创建对话框进度条
ProgressDialog pd = new ProgressDialog(this);
pd.setMax(100);
pd.setIndeterminate(false);
pd.setProgress(30);
pd.setTitle("下载对话框");
pd.setMessage("正在下载中");
pd.show();
}
即可实现图示效果...
还可以对样式进行一定的修改(会发现setProgress没什么用....orz)
另外可以用下面一句简单的语句来实现...参数可以见旁边的提示信息
标题进度条
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//设置标题
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);//也是已经过时了..
setContentView(R.layout.activity_main);
//显示进度条
setProgressBarIndeterminateVisibility(true);
}
但是我实际上运行起来不能显示...最后查了下资料,估计是API版本的问题...新版本估计已经不支持了吧
可以在AndroidManifest.xml中修改android:theme="@android:style/Theme.Holo.Light" 临时解决一下
自定义进度条
通过一个图片来自定义进度条
emm但是我好像没有什么合适的图片...
只能日后再试了...大概的记录一下方法
1.在res/drwable下创建一个layer-list
2.设置ProgressBar的android:indeterminateDrawble属性