public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /** * 确定取消对话框 * * @param view */ public void click1(View view) { // 1.创建一个对话框的构造器. AlertDialog.Builder builder = new Builder(this); builder.setTitle("java培训标题"); builder.setIcon(R.drawable.ic_launcher); builder.setMessage("想打开官方网站么?"); builder.setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://edu.csdn.net")); startActivity(intent); } }); builder.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 默认实现, 点击后 关闭对话框 } }); // builder.create().show(); builder.show(); } /** * 单选对话框 * * @param view */ public void click2(View view) { // 1.创建一个对话框的构造器. AlertDialog.Builder builder = new Builder(this); builder.setTitle("你想吃什么"); final String[] items = new String[] { "苹果", "葡萄", "香蕉" }; builder.setSingleChoiceItems(items, 1, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "您选择了吃" + items[which], 0) .show(); dialog.dismiss(); } }); // builder.create().show(); builder.show(); } /** * 多选对话框 * * @param view */ public void click3(View view) { // 1.创建一个对话框的构造器. AlertDialog.Builder builder = new Builder(this); builder.setTitle("你想吃什么"); final String[] items = new String[] { "苹果", "葡萄", "香蕉" }; final boolean[] status = new boolean[] { true, false, true }; builder.setMultiChoiceItems(items, status, new OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { if (isChecked) { Toast.makeText(MainActivity.this, items[which] + "被选中了", 0).show(); } else { Toast.makeText(MainActivity.this, items[which] + "被取消选中了", 0).show(); } status[which] = isChecked; } }); builder.setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // todo:遍历数组 查看状态 } }); // builder.create().show(); builder.show(); } /** * 进度条对话框 * * @param view */ public void click4(View view) { ProgressDialog pd = new ProgressDialog(this); pd.setTitle("请稍后"); pd.setMessage("正在后台处理..."); pd.show(); new Thread(){ public void run(){ Thread.sleep(2000); pd.dismiss(); } }.start(); } /** * 显示进度的进度条对话框 * * @param view */ public void click5(View view) { final ProgressDialog pd = new ProgressDialog(this); pd.setTitle("请稍后"); pd.setMessage("正在后台处理..."); pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pd.setMax(100); new Thread(){ public void run() { for(int i = 0;i<100;i++){ pd.setProgress(i); try { Thread.sleep(30); } catch (InterruptedException e) { e.printStackTrace(); } } pd.dismiss(); }; }.start(); pd.show(); } }
2. 单选框(RadioButton)
转存失败重新上传取消
要完成单选框显示,我们需要使用到RadioGroup和RadioButton(单选框),RadioGroup用于对单选框进行分组,相同组内的单选框只有一个单选框能被选中。(例子代码请见下方备注栏)
RadioGroup.check(R.id.dotNet);将id名为dotNet的单选框设置成选中状态。 (RadioButton) findViewById(radioGroup.getCheckedRadioButtonId());//获取被选中的单选框。 RadioButton.getText();//获取单选框的值 调用setOnCheckedChangeListener()方法,处理单选框被选择事件,把RadioGroup.OnCheckedChangeListener实例作为参数传入
3. 多选框(CheckBox)
每个多选框都是独立的,可以通过迭代所有多选框,然后根据其状态是否被选中再获取其值。
CheckBox.setChecked(true);//设置成选中状态。 CheckBox.getText();//获取多选框的值 调用setOnCheckedChangeListener()方法,处理多选框被选择事件,把CompoundButton.OnCheckedChangeListener实例作为参数传入 4. 下拉列表框(Spinner) 转存失败重新上传取消
public class MainActivity extends Activity { protected static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 第二个参数为下拉列表框每一项的界面样式,该界面样式由Android系统提供,当然您也可以自定义 ArrayAdapteradapter = new ArrayAdapter (this, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); adapter.add("java"); adapter.add("dotNet"); adapter.add("php"); Spinner spinner = (Spinner) findViewById(R.id.spinner); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView> parent, View view, int position, long id) { Spinner spinner = (Spinner)parent; String itemContent = (String)parent.getItemAtPosition(position); Toast.makeText(getApplicationContext(), itemContent, 0).show(); } @Override public void onNothingSelected(AdapterView> parent) { Log.i(TAG, parent.getClass().getName()); } }); } }
5. 拖动条(SeekBar) SeekBar.getProgress()获取拖动条当前值 调用setOnSeekBarChangeListener()方法,处理拖动条值变化事件,把SeekBar.OnSeekBarChangeListener实例作为参数传入 6. 进度条(ProgressBar)
在布局xml文件中添加进度条代码:
android:layout_width="fill_parent" android:layout_height="20px" style="?android:attr/progressBarStyleHorizontal" android:id="@+id/downloadbar"/> 在代码中操作进度条: ProgressBar.setMax(100);//设置最大刻度 ProgressBar.setProgress(0);//设置进度条的当前刻度,如果进度条的最大刻度为100,当前刻度为50,进度条将进行到一半。 7. 输入内容自动完成文本框(AutoCompleteTextView) android:layout_width="fill_parent“ android:layout_height="wrap_content“
android:completionThreshold="1“ , android:id="@+id/name" /> 除了AutoCompleteTextView控件外,我们还可以使用MultiAutoCompleteTextView控件来完成连续输入的功能。也就是说,当输入完一个字符串后,在该字符串后面输入一个逗号(,),在逗号前后可以有任意多个空格,然后再输入一个字符串,仍然会显示自动提示列表。 使用MultiAutoCompleteTextView时,需要为它的setTokenizer方法指定MultiAutoCompleteTextView.CommaTokenizer类对象实例, 该对象表示采用逗号作为输入多个字符串的分隔符。 < MultiAutoCompleteTextView android:layout_width="fill_parent“ android:layout_height="wrap_content“
android:completionThreshold="1“ android:id="@+id/name" /> public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String[] names = {"老张", "老方", "老毕", "李明" , "李丽", "陈江", "abc", "acc"}; MultiAutoCompleteTextView nameText = (MultiAutoCompleteTextView)this.findViewById(R.id.name); ArrayAdapter nameText.setAdapter(adapter); nameText.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());} /res/memu/activity_main.xml 菜单的布局文件 MainActivity.java 菜单的创建和点击响应protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] names = {"老张", "老方", "老毕", "李明" , "李丽", "陈江", "abc", "acc"};
AutoCompleteTextView nameText = (AutoCompleteTextView)this.findViewById(R.id.actv);
ArrayAdapter
8. 多次输入-内容自动完成文本框(MultiAutoCompleteTextView)
9. 菜单(Menu)@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.item1:
Toast.makeText(this, "菜单条目1被点击了", 0).show();
break;
case R.id.item2:
Toast.makeText(this, "菜单条目2被点击了", 0).show();
break;
}
return super.onOptionsItemSelected(item);
}