Andorid开发|Android从入门到进阶之高级控件

高级控件 1.自动完成文本控件

在搜索引擎(百度、搜狗)输入几个文字,会出来一些提示。可以减少用户的输入,提高程序的效率。刚才看到的自动提示,ajax技术。
1.1AotoCompleteTextView
? 取消下拉:Esc或BackSpace键
步骤:
1.定义一个字符串数组(有后台了,从后台读取),用于保存自动提示的数据。
2.将此字符串数组放入到数组适配器(ArrayAdapter)。
3.利用AutoCompleteTextView的setAdapter()方法,将字符串数组加入到AutoCompleteTextView对象中,设置自动完成文本控件的适配器。
2.MutilAutoCompleteTextView

后台代码:
package com.aaa.zyg001; // 这个是包的定义 //import导入相关的类; import androidx.appcompat.app.AppCompatActivity; import android.graphics.Color; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.KeyEvent; import android.view.View; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.DatePicker; import android.widget.EditText; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.MultiAutoCompleteTextView; import android.widget.RadioGroup; import android.widget.Switch; import android.widget.TextView; import android.widget.ToggleButton; import org.w3c.dom.Text; import java.util.Calendar; //直接这个类,实现一个抽象类的抽象方法 public class MainActivity extends AppCompatActivity {//1.定义字符串数组; String[]arr={ "郑州","安阳","洛阳","驻马店","安庆","安溪","安阳西","安阳东"}; AutoCompleteTextView myAuto; MultiAutoCompleteTextView myMulti; @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取内容 //1.当前对象,单行项目行;填充内容 ArrayAdapteradapter=new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line,arr); //System.out.println(adapter+"-------"); myAuto=(AutoCompleteTextView)findViewById(R.id.myAuto); myMulti=(MultiAutoCompleteTextView)findViewById(R.id.myMulti); System.out.println(myAuto+"======"); myAuto.setAdapter(adapter); //设置显示自动提示需要的字符串 myAuto.setThreshold(1); //------------------------------------------------------------- myMulti.setAdapter(adapter); //用来区分不同的子串; myMulti.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); myMulti.setThreshold(1); } }

效果图:
Andorid开发|Android从入门到进阶之高级控件
文章图片

2.下拉列表控件 Spinner,当用户单击该控件的时候,弹出选择列表供用户选择,且只能选择一项。同网页中的Select,同C#中的Combox。
使用步骤:
1.先定义一个字符串数组,用于保存下拉列表的数据;在实际使用中,可以从数据库获取数据;
2.将此字符串数组存入数组适配器(ArrayAdapter)。
3.利用Spinner的setAdapter()方法,将适配器加入到Spinner对象中,设置自动完成文本框的适配器。
属性:
spinnerMode 设置下拉列表的模式;dialog或者dropdown
dropDownWidth getDropDownWidth()
? setDropDownWidth(int pix) 设置下拉框的宽度
gravity getGravity()/setGravity() 设置选定项目的对齐方式
事件
? setOnItemSelectedListener(AdapterView.OnItemSelectedListener) 当列表被选中时触发的事件
android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/citySp" android:spinnerMode="dropdown"/>

后台代码
//1.变量和数据的声明 TextView tv_city; Spinner citySp; //字符串数组 String[]arr={ "深圳","东莞","珠海","哈尔滨"}; //获取内容 tv_city=(TextView) findViewById(R.id.tv_city); citySp=(Spinner) findViewById(R.id.citySp); //适配器:和自动完成文本一致 ArrayAdapteradapter=new ArrayAdapter<>(this, android.R.layout.simple_spinner_item,arr); citySp.setAdapter(adapter); //下拉列表的事件 citySp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){@Override public void onItemSelected(AdapterView parent, View view, int position,long id) {//当我们在下拉列表上单击 tv_city.setText(arr[position]); }@Override public void onNothingSelected(AdapterView adapterView) {} });

效果图:
Andorid开发|Android从入门到进阶之高级控件
文章图片

3.进度条和滑块 进度条:
用于某些资源的加载、文件下载和大量数据处理等,使用进度条为用户提供明确的操作结束时间,让用户能够了解目前程序的进度及其状态。
3.1 ProgressBar
属性:
max getMax() setMax() 设置或获取进度条的上限
progress getProgress() setProgress() 设置或获取进度条的进度

后台代码
public class MainActivity extends AppCompatActivity {//1.变量 ProgressBar fileDown; Button btnProgress; int progress=0; //进度为0 int max=102400; @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //============================ fileDown=(ProgressBar) findViewById(R.id.fileDown); btnProgress=(Button)findViewById(R.id.btn_progress); //设置进度条的最大值 fileDown.setMax(max); //设置按钮的事件 btnProgress.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View view) {//一步一步来 int seed=max-progress; Random random=new Random(); int current=random.nextInt(seed); progress=progress+current; fileDown.setProgress(progress); } }); } }

运行效果:
nt seed=max-progress;
Random random=new Random();
int current=random.nextInt(seed);
progress=progress+current; fileDown.setProgress(progress); } }); }

【Andorid开发|Android从入门到进阶之高级控件】}
运行效果:![在这里插入图片描述](https://img-blog.csdnimg.cn/d8593d6b74d24504b62c84d7694e1f38.png#pic_center)

    推荐阅读