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 学习随笔十九(对话框、样式、主题、国际化 )的更多相关文章

  1. Android学习(十九)Dialog对话框

    一.什么是Dialog对话框 对话框是当前页面中弹出的一个小窗口,用于显示重要的提示信息,提示用户输入信息,确认信息,或者显示某种状态,如下载进度,退出提示等等.用户需要与对话框进行交互,才能回到原窗 ...

  2. android 项目学习随笔十九(MD5)

    import java.security.MessageDigest; public class MD5Encoder { public static String encode(String str ...

  3. android 学习随笔十四(页面跳转与数据传递)

    1.activity 创建第二个Activity 需要在清单文件中为其配置一个activity标签 标签中如果带有这个子节点,则会在系统中多创建一个快捷图标 <intent-filter> ...

  4. android 学习随笔十八(广播与服务 )

    1.广播接收者注册 清单文件注册(Android四大组件都要在清单文件中注册) 一旦应用部署,广播接收者就生效了,直到用户手动停止应用或者应用被删除 广播接收者可以使用代码注册 需要广播接收者运行时, ...

  5. android 学习随笔十六(广播 )

    1.广播接收者 BroadcastReceiver 接收系统发出的广播 现实中的广播:电台为了传达一些消息,而发送的广播,通过广播携带要传达的消息,群众只要买一个收音机,就可以收到广播了  Andro ...

  6. android 学习随笔十五(Activity的生命周期与摧毁时返回数据 )

    1.Activity的生命周期 onCreate:创建时调用 onStart:在屏幕上可见,但是还没有获得焦点 onResume:可见并且获得焦点 onPause:可见,但是失去焦点 onStop:不 ...

  7. android 学习随笔十二(网络:使用异步HttpClient框架)

    使用异步HttpClient框架发送get.post请求 在https://github.com/ 搜索 asyn-http https://github.com/search?utf8=✓& ...

  8. android 学习随笔十(网络:get、post提交数据)

    1.get public class Tools { public static String getTextFromStream(InputStream is){ byte[] b = new by ...

  9. 十一、Android学习第十天——项目开始(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 十一.Android学习第十天——项目开始 Android知识点的学习告一 ...

随机推荐

  1. JSON.stringify实例应用—将对象转换成JSON类型进行AJAX异步传值

    在上一篇中,对JSON.stringify()方法有了初步的认识,并且做了一些简单的例子.本篇将进一步将JSON.stringify用在复杂些的实例中,例如如下需求: 在进jQuery AJAX异步传 ...

  2. 在Fedora8上配置Apache Httpd

    原以为Fedora8我安装的是最简版本,于是去Apache Httpd官网下一个httpd,但是速度很成问题,现在还没有下完. 打开Fedora8的光盘,里面有httpd-2.2.6.3-3.i386 ...

  3. java web工程读取及修改配置文件

    这篇博客比自己讲解的详细: http://blog.sina.com.cn/s/blog_69398ed9010191jg.html 使用方法: 1)配置文件在web-info的class目录下,或者 ...

  4. CString + UINT Error:有多个运算符"+="与这些操作数匹配

    在OnChar中,参数UINT nChar 有一个CString str,现在执行 str += nChar报错:Error:有多个运算符"+="与这些操作数匹配 解决办法:把UI ...

  5. hibernate中@Entity和@Table的区别

    Java Persistence API定义了一种定义,可以将常规的普通Java对象(有时被称作POJO)映射到数据库.这些普通Java对象被称作Entity Bean.除了是用Java Persis ...

  6. 使用JavaScript闭包,以工厂模式实现定时器对象

    原始对象写法 一般工作中写Javascript代码,主要写全局函数,并组织函数之间的调用,确实比较低级, 于是想利用面向对象的思想应用到JS编码中. 在火狐浏览器开发者网站上,看到一个实例利用对象技术 ...

  7. Jquery判断离开页面时,通过Ajax更新数据(兼容IE,Chrome,FF浏览器)

    现在很多项目都有客户离开网页时,处理一些业务的需求.所以焦点就聚集在了如何获取页面离开事件. 以下是本人在一个项目中需要记录页面浏览时长的处理办法,测试兼容IE,Chrome,FF浏览器 代码如下: ...

  8. 【转】Tomcat7启动的总过程 (有时间自己写下tomcat8的)

    首先,说明tomcat8和tomcat7的启动过程不一样,这篇是针对tomcat7的. Tomcat启动的总过程 通过上面的介绍,我们总体上清楚了各个组件的生命周期的各个阶段具体都是如何运作的.接下来 ...

  9. Silverlight TabItem选中,未选中样式设置

    <Application.Resources> <LinearGradientBrush x:Key="TabItemBackground" EndPoint=& ...

  10. Spring 依赖注入,在Main方法中取得Spring控制的实例

    Spring依赖注入机制,在Main方法中通过读取配置文件,获取Spring注入的bean实例.这种应用在实训的时候,老师曾经说过这种方法,而且学Spring入门的时候都会先学会使用如何在普通的jav ...