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知识点的学习告一 ...
随机推荐
- SQL Server select 将类型相同的行合并
select Category from(select distinct Category from T_Detail where CREATED_BY= @CREATED_BY AND Record ...
- javascript知识点记录(1)
javascript一些知识点记录 1.substring,slice,substr的用法 substring 和slice 都有startIndex 和 endIndex(不包括endInex),区 ...
- 使用Aspose.Cell控件实现Excel高难度报表的生成(一)
时光飞逝,生活.工作.业余研究总是在不停忙碌着,转眼快到月底,该月的博客文章任务未完,停顿回忆一下,总结一些经验以及好的东西出来,大家一起分享一下.本文章主要介绍报表的生成,基于Aspose.Cell ...
- App Store idfa被拒检查办法
最近应用因为这个问题被拒两次,理由如下: PLA 3.3.12We found your app uses the iOS Advertising Identifier but does not in ...
- C# MySqlHelper
1.MySql官方提供ADO.NET访问模式的MySql.Data.dll,下载地址:http://dev.mysql.com/downloads/connector/net/ 2.MySqlHelp ...
- Unity插件研究院之ResourceChecker
这个插件是我在国外网站逛论坛发现的,试用了一下非常好用,是一个轻量级的插件就一个类.开发中尤其是和美术合作的时候,可能你会发现Project视图中有很多没有用到的资源,但是你又不敢删除,因为你不知道那 ...
- iOS - (懒加载)
今天很坑爹,做界面的时候,tableview 明显做了复用了,数组也做了懒加载了,获取数据前也把数组给清空了,但是每次获取数据刷新表格的时候,数据确重复覆盖了(重复创建),后来给 cell 加了个白色 ...
- ios_图片放大的两种方式transform和frame
frame改变x值y值的方式放大图片,是从左上开始放大. frame改变控件宽高的方式放大图片,是从中心开始放大. 原头像大小 用frame改变宽高 transform方式放大图片,从中心开始放大
- python password输入
1.linux下用getpass,没有星号提示,符合linux风格 from getpass import getpasspwd = getpass('Enter the password: ') 2 ...
- jQuery中的siblings
所谓siblings,英文翻译就是兄弟节点.那么故名思意,就是拿到某元素的兄弟节点(不包括自己). <html> <head> <script type="te ...