android 学习笔记10-对话框 主题样式 国际化
2017-01-10 23:28
453 查看
1、确定取消对话框
2、单选对话框
public void click2(View v){
//创建对话框创建器
AlertDialog.Builder builder = new Builder(this);
//设置图标
builder.setIcon(android.R.drawable.ic_dialog_alert);
//设置标题
builder.setTitle(“选择职业”);
3、多选对话框
void click3(View v){
//创建对话框创建器
AlertDialog.Builder builder = new Builder(this);
//设置图标
builder.setIcon(android.R.drawable.ic_dialog_alert);
//设置标题
builder.setTitle(“选择职业”);
4、进度条对话框
public void click4(View v){
//创建进度条对话框
final ProgressDialog dialog = new ProgressDialog(this);
dialog.setIcon(android.R.drawable.ic_input_add);
dialog.setTitle(“正处理,请稍候…”);
dialog.setMax(100);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
Thread t = new Thread(){
public void run() {
for (int i = 0; i <= 100; i++) {
dialog.setProgress(i);
try {
sleep(30);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//完成,进度消失
dialog.dismiss();
}
};
t.start();//开启一个子线程
dialog.show();//显示dialog
}
5、样式与主题
为什么设置样式,因为如果多个地方使用同一个设置的话,如果修改那么都需要修改,如果定义了样式的话,那么就只需要修改一个地方。
6、国际化
就比如想应用中的字体随着系统语言的设置而改变,就需要设置国际化
如果我们在xml知直接定义的话,会提示一个IN18警告,因为国际化需要在string.xml中定义
具体的步骤:
在res文件夹中复制value,将里面的string.xml定义多份
value-zh 里面放中文
value-en 里面放英文
…
具体的步骤: a,创建对话框构建器对象,类似工厂模式 AlertDialog.Builder builder = new Builder(this);//this是一个上下文Context ,查看源码可知 b,设置标题和正文 builder.setTitle("警告"); builder.setMessage("对话框内容"); c,设置确定和取消按钮 builder.setPositiveButton("确定", new OnClickListener() {//注意这个侦听是dialog包下的,不要导错了 @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "已经确定", 0).show(); } }); builder.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "已经取消", 0).show(); } }); d,使用构建器创建出对话框对象 AlertDialog ad = builder.create(); ad.show(); 代码演示: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click1(View v){ //创建对话框创建器 AlertDialog.Builder builder = new Builder(this); //设置图标 builder.setIcon(android.R.drawable.ic_dialog_alert); //设置标题 builder.setTitle("警告"); //设置内容 builder.setMessage("对话框内容"); //设置确定按钮 builder.setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "已经确定", 0).show(); } }); //设置取消按钮 builder.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "已经取消", 0).show(); } }); //显示对话框 AlertDialog ad = builder.create(); ad.show(); } } 这样就OK了
2、单选对话框
public void click2(View v){
//创建对话框创建器
AlertDialog.Builder builder = new Builder(this);
//设置图标
builder.setIcon(android.R.drawable.ic_dialog_alert);
//设置标题
builder.setTitle(“选择职业”);
final String[] items = new String[]{ "老师", "程序员", "客服", }; //设置单选选项 builder.setSingleChoiceItems(items, 1, new OnClickListener() { //dialog:触发此方法执行的那个对话框 @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, items[which], 0).show(); //对话框消失 dialog.dismiss(); } }); //显示对话框 builder.show(); } 注意:不要设置 builder.setMessage("对话框内容"); 不然会覆盖
3、多选对话框
void click3(View v){
//创建对话框创建器
AlertDialog.Builder builder = new Builder(this);
//设置图标
builder.setIcon(android.R.drawable.ic_dialog_alert);
//设置标题
builder.setTitle(“选择职业”);
final String[] items = new String[]{ "老师", "程序员", "客服", }; final boolean[] checkedItems = new boolean[]{ true, false, true }; //设置多选选项 builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { //记录用户的选择 checkedItems[which] = isChecked; } }); builder.setPositiveButton("确定", new OnClickListener() {//点击确定对话框就会消失,不用去dialog.dismiss(); @Override public void onClick(DialogInterface dialog, int which) { String text = ""; for (int i = 0; i < checkedItems.length; i++) { text += checkedItems[i]? items[i] + ",": "";//三步运算符 } Toast.makeText(MainActivity.this, text, 0).show(); } }); builder.show(); }
4、进度条对话框
public void click4(View v){
//创建进度条对话框
final ProgressDialog dialog = new ProgressDialog(this);
dialog.setIcon(android.R.drawable.ic_input_add);
dialog.setTitle(“正处理,请稍候…”);
dialog.setMax(100);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
Thread t = new Thread(){
public void run() {
for (int i = 0; i <= 100; i++) {
dialog.setProgress(i);
try {
sleep(30);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//完成,进度消失
dialog.dismiss();
}
};
t.start();//开启一个子线程
dialog.show();//显示dialog
}
5、样式与主题
为什么设置样式,因为如果多个地方使用同一个设置的话,如果修改那么都需要修改,如果定义了样式的话,那么就只需要修改一个地方。
在style.xml文件中定义 <style name="basestyle"> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:textSize">30sp</item> <item name="android:textColor">#00ff00</item> </style> 样式还可以继承,比如我只想改变basestyle中的某一个属性,我就可以继承它,2种写法: a,使用parent <style name="style1" parent="basestyle"> <item name="android:textSize">20sp</item> </style> b,使用. 这种写法会多一点 <style name="basestyle.style2"> <item name="android:textColor">#ff0000</item> </style> 使用的话我们直接去引用就行了,例如: 这个只需要设置文本的内容就行了 <TextView android:text="@string/hello_world" style="@style/basestyle" /> <TextView android:text="@string/hello_world" style="@style/style1" /> <TextView android:text="@string/hello_world" style="@style/style2" /> 主题的设置和样式一模一样,主题用于Activity
6、国际化
就比如想应用中的字体随着系统语言的设置而改变,就需要设置国际化
如果我们在xml知直接定义的话,会提示一个IN18警告,因为国际化需要在string.xml中定义
具体的步骤:
在res文件夹中复制value,将里面的string.xml定义多份
value-zh 里面放中文
value-en 里面放英文
…
这样你的应用中的语言就会随着系统语言的改变而改变 定义图片的时候,android:src设置图片的路径 <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/flag" android:layout_centerInParent="true" />
相关文章推荐
- android 学习随笔十九(对话框、样式、主题、国际化 )
- android 学习随笔十九(对话框、样式、主题、国际化 )
- Android 第七天重置版_样式主题国际化动画对话框
- android从零开始--国际化、样式和主题、屏幕适配
- 黑马程序员------学习笔记(10)Android四大组件
- Android应用开发学习笔记之AlertDialog对话框
- Android精简小笔记(10):长按屏幕时弹出对话框
- 编写警告对话框+硬编码生成界面+国际化+自适应屏幕分辩率+样式与主题
- android菜鸟学习笔记10----Intent及<intent-filter>
- 样式、主题、原始XML资源、Android程序国际化、Menu资源
- 【Android】学习笔记(10)——adb使用方法
- Android开发学习笔记之将Activity变成半透明对话框
- Android样式(style)和主题(theme)资源介绍-android学习之旅(五十六)
- Android 学习笔记 第五季 10 文件系统
- 学习笔记:自定义样式(style)与主题(theme)
- ym——Android从零开始(33)(国际化、样式和主题、屏幕适配)(新)
- 孙鑫VC++视频学习笔记之10: 图形绘制与通用对话框
- Android开发学习笔记:对话框浅析
- [学习笔记]android:系列样式大全
- [android](学习笔记6)为应用程序添加对话框(1)