1、对话框

  1. package com.itheima.dialog;
  2.  
  3. import android.os.Bundle;
  4. import android.app.Activity;
  5. import android.app.AlertDialog;
  6. import android.app.AlertDialog.Builder;
  7. import android.app.ProgressDialog;
  8. import android.content.DialogInterface;
  9. import android.content.DialogInterface.OnClickListener;
  10. import android.content.DialogInterface.OnMultiChoiceClickListener;
  11. import android.view.Menu;
  12. import android.view.View;
  13. import android.widget.Toast;
  14.  
  15. public class MainActivity extends Activity {
  16.  
  17. @Override
  18. protected void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.activity_main);
  21. }
  22.  
  23. public void click1(View v){
  24. //创建对话框创建器
  25. AlertDialog.Builder builder = new Builder(this);
  26. //设置图标
  27. builder.setIcon(android.R.drawable.ic_dialog_alert);
  28. //设置标题
  29. builder.setTitle("警告");
  30. //设置内容
  31. builder.setMessage("欲练此功必先自宫,春晓你确定要自宫吗");
  32.  
  33. //设置确定按钮
  34. builder.setPositiveButton("确定", new OnClickListener() {
  35.  
  36. @Override
  37. public void onClick(DialogInterface dialog, int which) {
  38. Toast.makeText(MainActivity.this, "自宫完成,谢谢使用", 0).show();
  39.  
  40. }
  41. });
  42. //设置取消按钮
  43. builder.setNegativeButton("取消", new OnClickListener() {
  44.  
  45. @Override
  46. public void onClick(DialogInterface dialog, int which) {
  47. Toast.makeText(MainActivity.this, "若不自宫,一定不成功", 0).show();
  48.  
  49. }
  50. });
  51.  
  52. //显示对话框
  53. AlertDialog ad = builder.create();
  54. ad.show();
  55. }
  56.  
  57. public void click2(View v){
  58. //创建对话框创建器
  59. AlertDialog.Builder builder = new Builder(this);
  60. //设置图标
  61. builder.setIcon(android.R.drawable.ic_dialog_alert);
  62. //设置标题
  63. builder.setTitle("选择您的家乡");
  64.  
  65. final String[] items = new String[]{
  66. "火星",
  67. "塞伯坦",
  68. "氪星",
  69. "M78星云",
  70. };
  71.  
  72. //设置单选选项
  73. builder.setSingleChoiceItems(items, 1, new OnClickListener() {
  74.  
  75. //dialog:触发此方法执行的那个对话框
  76. @Override
  77. public void onClick(DialogInterface dialog, int which) {
  78. Toast.makeText(MainActivity.this, items[which], 0).show();
  79. //对话框消失
  80. dialog.dismiss();
  81.  
  82. }
  83. });
  84.  
  85. //显示对话框
  86. builder.show();
  87. }
  88.  
  89. public void click3(View v){
  90. //创建对话框创建器
  91. AlertDialog.Builder builder = new Builder(this);
  92. //设置图标
  93. builder.setIcon(android.R.drawable.ic_dialog_alert);
  94. //设置标题
  95. builder.setTitle("选择您需要的武器");
  96.  
  97. final String[] items = new String[]{
  98. "板凳",
  99. "啤酒瓶",
  100. "开山刀",
  101. "AK-47",
  102. "爱国者",
  103. "唐晓平"
  104. };
  105.  
  106. final boolean[] checkedItems = new boolean[]{
  107. true,
  108. false,
  109. false,
  110. false,
  111. false,
  112. true
  113. };
  114.  
  115. //设置多选选项
  116. builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {
  117.  
  118. @Override
  119. public void onClick(DialogInterface dialog, int which, boolean isChecked) {
  120. //记录用户的选择
  121. checkedItems[which] = isChecked;
  122. }
  123. });
  124. builder.setPositiveButton("确定", new OnClickListener() {
  125.  
  126. @Override
  127. public void onClick(DialogInterface dialog, int which) {
  128. String text = "";
  129. for (int i = 0; i < checkedItems.length; i++) {
  130. text += checkedItems[i]? items[i] + ",": "";
  131. }
  132. Toast.makeText(MainActivity.this, text, 0).show();
  133.  
  134. }
  135. });
  136.  
  137. builder.show();
  138. }
  139.  
  140. public void click4(View v){
  141. //创建进度条对话框
  142. final ProgressDialog dialog = new ProgressDialog(this);
  143. dialog.setIcon(android.R.drawable.ic_input_add);
  144. dialog.setTitle("正在自宫中,请稍候...");
  145. dialog.setMax(100);
  146. dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
  147. Thread t = new Thread(){
  148. public void run() {
  149. for (int i = 0; i <= 100; i++) {
  150. dialog.setProgress(i);
  151. try {
  152. sleep(20);
  153. } catch (InterruptedException e) {
  154. // TODO Auto-generated catch block
  155. e.printStackTrace();
  156. }
  157. }
  158. //自宫完成,进度消失
  159. dialog.dismiss();
  160. }
  161. };
  162. t.start();
  163. dialog.show();
  164. }
  165. }
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:paddingBottom="@dimen/activity_vertical_margin"
  6. android:paddingLeft="@dimen/activity_horizontal_margin"
  7. android:paddingRight="@dimen/activity_horizontal_margin"
  8. android:paddingTop="@dimen/activity_vertical_margin"
  9. tools:context=".MainActivity"
  10. android:orientation="vertical"
  11. >
  12.  
  13. <Button
  14. android:layout_width="wrap_content"
  15. android:layout_height="wrap_content"
  16. android:text="确定取消对话框"
  17. android:onClick="click1"
  18. />
  19. <Button
  20. android:layout_width="wrap_content"
  21. android:layout_height="wrap_content"
  22. android:text="单选对话框"
  23. android:onClick="click2"
  24. />
  25. <Button
  26. android:layout_width="wrap_content"
  27. android:layout_height="wrap_content"
  28. android:text="多选对话框"
  29. android:onClick="click3"
  30. />
  31. <Button
  32. android:layout_width="wrap_content"
  33. android:layout_height="wrap_content"
  34. android:text="进度条对话框"
  35. android:onClick="click4"
  36. />
  37.  
  38. </LinearLayout>

2、样式和主题

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:paddingBottom="@dimen/activity_vertical_margin"
  6. android:paddingLeft="@dimen/activity_horizontal_margin"
  7. android:paddingRight="@dimen/activity_horizontal_margin"
  8. android:paddingTop="@dimen/activity_vertical_margin"
  9. tools:context=".MainActivity"
  10. android:orientation="vertical"
  11. >
  12.  
  13. <TextView
  14. android:text="@string/hello_world"
  15. style="@style/lakesouthstyle"
  16. />
  17. <TextView
  18. android:text="@string/hello_world"
  19. style="@style/chunxiaostyle"
  20. />
  21. <TextView
  22. android:text="@string/hello_world"
  23. style="@style/lakesouthstyle.miaorunstyle"
  24. />
  25. <TextView
  26. android:text="@string/hello_world"
  27. style="@style/lakesouthstyle"
  28. />
  29.  
  30. </LinearLayout>

在values目录下定义样式,主题和样式定义相同,主题应用在清单文件中(主题用于Activity),样式应用在布局文件中

  1. <resources xmlns:android="http://schemas.android.com/apk/res/android">
  2.  
  3. <!--
  4. Base application theme, dependent on API level. This theme is replaced
  5. by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
  6. -->
  7. <style name="AppBaseTheme" parent="android:Theme.Light">
  8. <!--
  9. Theme customizations available in newer API levels can go in
  10. res/values-vXX/styles.xml, while customizations related to
  11. backward-compatibility can go here.
  12. -->
  13. </style>
  14.  
  15. <!-- Application theme. -->
  16. <style name="AppTheme" parent="AppBaseTheme">
  17. <!-- All customizations that are NOT specific to a particular API-level can go here. -->
  18. <item name="android:background">#ff0000</item>
  19. </style>
  20.  
  21. <style name="lakesouthstyle">
  22. <item name="android:layout_width">wrap_content</item>
  23. <item name="android:layout_height">wrap_content</item>
  24. <item name="android:textSize">30sp</item>
  25. <item name="android:textColor">#00ff00</item>
  26. </style>
  27. <style name="chunxiaostyle" parent="lakesouthstyle">
  28. <item name="android:textSize">20sp</item>
  29. </style>
  30. <style name="lakesouthstyle.miaorunstyle">
  31. <item name="android:textColor">#ff0000</item>
  32. </style>
  33.  
  34. </resources>

3、国际化

根据语言需求定义values,values_zh,values_it,drawable-en-rUS(找出国家语言简写)等定义资源。

文本国际化

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3.  
  4. <string name="app_name">11_国际化</string>
  5. <string name="action_settings">Settings</string>
  6. <string name="hello_world">这是英文的你好世界</string>
  7.  
  8. </resources>

values,英文

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3.  
  4. <string name="app_name">11_国际化</string>
  5. <string name="action_settings">Settings</string>
  6. <string name="hello_world">这是中文的你好世界</string>
  7.  
  8. </resources>

values-zh

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3.  
  4. <string name="app_name">11_国际化</string>
  5. <string name="action_settings">Settings</string>
  6. <string name="hello_world">这是意大利文的你好世界</string>
  7.  
  8. </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. SQL Server select 将类型相同的行合并

    select Category from(select distinct Category from T_Detail where CREATED_BY= @CREATED_BY AND Record ...

  2. javascript知识点记录(1)

    javascript一些知识点记录 1.substring,slice,substr的用法 substring 和slice 都有startIndex 和 endIndex(不包括endInex),区 ...

  3. 使用Aspose.Cell控件实现Excel高难度报表的生成(一)

    时光飞逝,生活.工作.业余研究总是在不停忙碌着,转眼快到月底,该月的博客文章任务未完,停顿回忆一下,总结一些经验以及好的东西出来,大家一起分享一下.本文章主要介绍报表的生成,基于Aspose.Cell ...

  4. App Store idfa被拒检查办法

    最近应用因为这个问题被拒两次,理由如下: PLA 3.3.12We found your app uses the iOS Advertising Identifier but does not in ...

  5. C# MySqlHelper

    1.MySql官方提供ADO.NET访问模式的MySql.Data.dll,下载地址:http://dev.mysql.com/downloads/connector/net/ 2.MySqlHelp ...

  6. Unity插件研究院之ResourceChecker

    这个插件是我在国外网站逛论坛发现的,试用了一下非常好用,是一个轻量级的插件就一个类.开发中尤其是和美术合作的时候,可能你会发现Project视图中有很多没有用到的资源,但是你又不敢删除,因为你不知道那 ...

  7. iOS - (懒加载)

    今天很坑爹,做界面的时候,tableview 明显做了复用了,数组也做了懒加载了,获取数据前也把数组给清空了,但是每次获取数据刷新表格的时候,数据确重复覆盖了(重复创建),后来给 cell 加了个白色 ...

  8. ios_图片放大的两种方式transform和frame

    frame改变x值y值的方式放大图片,是从左上开始放大. frame改变控件宽高的方式放大图片,是从中心开始放大. 原头像大小 用frame改变宽高 transform方式放大图片,从中心开始放大

  9. python password输入

    1.linux下用getpass,没有星号提示,符合linux风格 from getpass import getpasspwd = getpass('Enter the password: ') 2 ...

  10. jQuery中的siblings

    所谓siblings,英文翻译就是兄弟节点.那么故名思意,就是拿到某元素的兄弟节点(不包括自己). <html> <head> <script type="te ...