android 学习随笔十九(对话框、样式、主题、国际化 )
1、对话框
package com.itheima.dialog; import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.view.Menu;
import android.view.View;
import android.widget.Toast; 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();
} 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[]{
"火星",
"塞伯坦",
"氪星",
"M78星云",
}; //设置单选选项
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();
} public 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[]{
"板凳",
"啤酒瓶",
"开山刀",
"AK-47",
"爱国者",
"唐晓平"
}; final boolean[] checkedItems = new boolean[]{
true,
false,
false,
false,
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() { @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();
} 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(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//自宫完成,进度消失
dialog.dismiss();
}
};
t.start();
dialog.show();
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:orientation="vertical"
> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确定取消对话框"
android:onClick="click1"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="单选对话框"
android:onClick="click2"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="多选对话框"
android:onClick="click3"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="进度条对话框"
android:onClick="click4"
/> </LinearLayout>
2、样式和主题
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:orientation="vertical"
> <TextView
android:text="@string/hello_world"
style="@style/lakesouthstyle"
/>
<TextView
android:text="@string/hello_world"
style="@style/chunxiaostyle"
/>
<TextView
android:text="@string/hello_world"
style="@style/lakesouthstyle.miaorunstyle"
/>
<TextView
android:text="@string/hello_world"
style="@style/lakesouthstyle"
/> </LinearLayout>
在values目录下定义样式,主题和样式定义相同,主题应用在清单文件中(主题用于Activity),样式应用在布局文件中
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
     <!--
         Base application theme, dependent on API level. This theme is replaced
         by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
     -->
     <style name="AppBaseTheme" parent="android:Theme.Light">
         <!--
             Theme customizations available in newer API levels can go in
             res/values-vXX/styles.xml, while customizations related to
             backward-compatibility can go here.
         -->
     </style>
     <!-- Application theme. -->
     <style name="AppTheme" parent="AppBaseTheme">
         <!-- All customizations that are NOT specific to a particular API-level can go here. -->
         <item name="android:background">#ff0000</item>
     </style>
     <style name="lakesouthstyle">
         <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>
     <style name="chunxiaostyle" parent="lakesouthstyle">
         <item name="android:textSize">20sp</item>
     </style>
     <style name="lakesouthstyle.miaorunstyle">
         <item name="android:textColor">#ff0000</item>
     </style>
 </resources>
3、国际化
根据语言需求定义values,values_zh,values_it,drawable-en-rUS(找出国家语言简写)等定义资源。
文本国际化
<?xml version="1.0" encoding="utf-8"?>
<resources> <string name="app_name">11_国际化</string>
<string name="action_settings">Settings</string>
<string name="hello_world">这是英文的你好世界</string> </resources>
values,英文
<?xml version="1.0" encoding="utf-8"?>
<resources> <string name="app_name">11_国际化</string>
<string name="action_settings">Settings</string>
<string name="hello_world">这是中文的你好世界</string> </resources>
values-zh
<?xml version="1.0" encoding="utf-8"?>
<resources> <string name="app_name">11_国际化</string>
<string name="action_settings">Settings</string>
<string name="hello_world">这是意大利文的你好世界</string> </resources>
values-it
图片也可以国际化,定义drawable-en-rGB、drawable-en-rUS等
android 学习随笔十九(对话框、样式、主题、国际化 )的更多相关文章
- Android学习(十九)Dialog对话框
		
一.什么是Dialog对话框 对话框是当前页面中弹出的一个小窗口,用于显示重要的提示信息,提示用户输入信息,确认信息,或者显示某种状态,如下载进度,退出提示等等.用户需要与对话框进行交互,才能回到原窗 ...
 - android 项目学习随笔十九(MD5)
		
import java.security.MessageDigest; public class MD5Encoder { public static String encode(String str ...
 - android 学习随笔十四(页面跳转与数据传递)
		
1.activity 创建第二个Activity 需要在清单文件中为其配置一个activity标签 标签中如果带有这个子节点,则会在系统中多创建一个快捷图标 <intent-filter> ...
 - android 学习随笔十八(广播与服务 )
		
1.广播接收者注册 清单文件注册(Android四大组件都要在清单文件中注册) 一旦应用部署,广播接收者就生效了,直到用户手动停止应用或者应用被删除 广播接收者可以使用代码注册 需要广播接收者运行时, ...
 - android 学习随笔十六(广播 )
		
1.广播接收者 BroadcastReceiver 接收系统发出的广播 现实中的广播:电台为了传达一些消息,而发送的广播,通过广播携带要传达的消息,群众只要买一个收音机,就可以收到广播了 Andro ...
 - android 学习随笔十五(Activity的生命周期与摧毁时返回数据 )
		
1.Activity的生命周期 onCreate:创建时调用 onStart:在屏幕上可见,但是还没有获得焦点 onResume:可见并且获得焦点 onPause:可见,但是失去焦点 onStop:不 ...
 - android 学习随笔十二(网络:使用异步HttpClient框架)
		
使用异步HttpClient框架发送get.post请求 在https://github.com/ 搜索 asyn-http https://github.com/search?utf8=✓& ...
 - android 学习随笔十(网络:get、post提交数据)
		
1.get public class Tools { public static String getTextFromStream(InputStream is){ byte[] b = new by ...
 - 十一、Android学习第十天——项目开始(转)
		
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 十一.Android学习第十天——项目开始 Android知识点的学习告一 ...
 
随机推荐
- mysql 数据库授权
			
1: GRANT ALL PRIVILEGES ON share_db.* to 'db_user'@'%' IDENTIFIED BY 'db_user'; 2:FLUSH PRIVILEGES;
 - mongoDB 读书笔记(初级命令)
			
关于mongoDB的相关知识,读书笔记,便于自己查阅用,不定期更新(纯手打) <mongoDB权威指南> 一.创建更新和删除 1.创建 //批量插入一个集合可以节省时间,只用 ...
 - ubuntu mysql 远程连接
			
最近需要远程连接mysql服务器,先进行简单的测试,过程记录于此. 参考链接: http://blog.chinaunix.net/uid-28458801-id-3445261.html http: ...
 - iOS:详细的正则表达式
			
1.简介: 在项目中,正则的使用是很普遍的,例如登录账号和密码(手机号.邮箱等).用到的方法就是谓词对象过滤:NSPredicate. 2.什么是正则表达式: 正则表达式,又称正规表示法,是对字符串操 ...
 - mysql学习笔记——支持存储引擎
 - 执行sql失败之后,再次执行的时候提示:ora-02429:无法删除用于强制唯一/主键的索引
			
SQL 1:select segment_name,partition_name,tablespace_name from --显示出表的主键的表空间是:SYSTEM --以下是生成删除主键约束的脚本 ...
 - 最流行的PHP 代码规范
			
“PHP是最好的编程语言” ;-) 那么PHPer习惯使用什么样的代码规范呢?sideeffect.kr通过分析GitHub上托管的开源代码,得出了一些有趣的结果,让我们一起来看看吧. 缩进 空格(7 ...
 - iOS 本地加载html登陆页面
			
Html的代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
 - 微信的公众号unionid
			
此外,由于开发者经常有需在多个平台(移动应用.网站.公众帐号)之间共通用户帐号,统一帐号体系的需求,微信开放平台(open.weixin.qq.com)提供了UnionID机制.开发者可通过OpenI ...
 - electron "Cannot find module 'dialog'", source: module.js (336)"
			
打算用electron的dialog api 谁知道, 按官方api http://electron.atom.io/docs/v0.33.0/api/dialog/ https://github.c ...