Android零碎知识(一)
public abstract Resources getResources ()
Return a Resources instance for your application's package.
BitmapFactory
extends Object java.lang.Object
↳ android.graphics.BitmapFactory Class Overview -------------------------------------------------------------------------------- Creates Bitmap objects from various sources, including files, streams, and byte-arrays.
public void translate (float dx, float dy)
Added in API level 1
Preconcat the current matrix with the specified translation When working with matrices, the word concatenation refers to multiplication. Since matrix multiplication is not commutative, there is a separate word for backwards multiplication.
Pre-concatenating a to b means setting a = b × a. (As opposed to a = a × b, which will give a different matrix) The canvas maintains a matrix and the canvas is manipulated by methods which are well defined in OpenGL
三种列表对话框:setItems,setItems,setMultiChoiceItems。
在 接口DialogInterface.OnClickListener的抽象方法
public abstract void onClick (DialogInterface dialog, int which) 中的参数which:The button that was clicked (e.g. BUTTON1)
or the position of the item clicked
既能监听列表项(>=0),又能监听按钮(<=0)
BUTTON_NEGATIVE=-2,BUTTON_NEUTRAL=-3,BUTTON_POSITIVE=-1;
public AlertDialog.Builder setSingleChoiceItems (CharSequence[] items, int checkedItem, DialogInterface.OnClickListener listener)
其中参数checkedItem specifies which item is checked. If -1 no items are checked.因为有默认选项,onclick方法若不点击列表项,这个默认值就获取不到,所以在onclick方法里需要设置index的默认值为1。下面的程序是在构造方法传入1的。
另外注意在多选列表对话框中是如何获得用户选择的列表项,先得到对话框的Listview对象,扫描的方式
package net.blogjava.mobile; import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView; public class Main extends Activity implements OnClickListener
{
private String[] provinces = new String[]
{ "辽宁省", "山东省", "河北省", "福建省", "广东省", "黑龙江省" };
private ButtonOnClick buttonOnClick = new ButtonOnClick(1);
private ListView lv = null;
private void showListDialog()
{
new AlertDialog.Builder(this).setTitle("选择省份").setItems(provinces,
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
final AlertDialog ad = new AlertDialog.Builder(
Main.this).setMessage(
"您已经选择了: " + which + ":" + provinces[which])
.show();
android.os.Handler hander = new android.os.Handler();
hander.postDelayed(new Runnable()
{
@Override
public void run()
{
ad.dismiss(); }
}, 5 * 1000); }
}).show();
} private void showSingleChoiceDialog()
{ new AlertDialog.Builder(this).setTitle("选择省份").setSingleChoiceItems(
provinces, 1, buttonOnClick).setPositiveButton("确定",
buttonOnClick).setNegativeButton("取消", buttonOnClick).show(); } private void showMultiChoiceDialog()
{ AlertDialog ad = new AlertDialog.Builder(this)
.setIcon(R.drawable.image).setTitle("选择省份")
.setMultiChoiceItems(provinces, new boolean[]
{ false, true, false, true, false, false },
new DialogInterface.OnMultiChoiceClickListener()
{
public void onClick(DialogInterface dialog,
int whichButton, boolean isChecked)
{ }
}).setPositiveButton("确定",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,
int whichButton)
{
int count = lv.getCount();
String s = "您选择了:";
for (int i = 0; i < provinces.length; i++)
{ if (lv.getCheckedItemPositions().get(i))
s += i + ":"
+ lv.getAdapter().getItem(i)
+ " "; }
if (lv.getCheckedItemPositions().size() > 0)
{
new AlertDialog.Builder(Main.this)
.setMessage(s).show();
}
else
{
new AlertDialog.Builder(Main.this)
.setMessage("您未选择任何省份").show(); } }
}).setNegativeButton("取消", null).create();
lv = ad.getListView();
ad.show(); } private class ButtonOnClick implements DialogInterface.OnClickListener
{
private int index; public ButtonOnClick(int index)
{
this.index = index;
} @Override
public void onClick(DialogInterface dialog, int whichButton)
{
if (whichButton >= 0)
{
index = whichButton;
// dialog.cancel();
}
else
{
if (whichButton == DialogInterface.BUTTON_POSITIVE)
{
new AlertDialog.Builder(Main.this).setMessage(
"您已经选择了: " + index + ":" + provinces[index]).show();
}
else if (whichButton == DialogInterface.BUTTON_NEGATIVE)
{
new AlertDialog.Builder(Main.this).setMessage("您什么都未选择.")
.show(); }
} } } @Override
public void onClick(View view)
{
switch (view.getId())
{
case R.id.btnListDialog:
{
showListDialog();
break;
}
case R.id.btnSingleChoiceDialog:
{
showSingleChoiceDialog();
break;
}
case R.id.btnMultiChoiceDialog:
{
showMultiChoiceDialog();
break;
}
}
} @Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnListDialog = (Button) findViewById(R.id.btnListDialog);
Button btnSingleChoiceDialog = (Button) findViewById(R.id.btnSingleChoiceDialog);
Button btnMultiChoiceDialog = (Button) findViewById(R.id.btnMultiChoiceDialog);
btnListDialog.setOnClickListener(this);
btnSingleChoiceDialog.setOnClickListener(this);
btnMultiChoiceDialog.setOnClickListener(this);
}
}
Android零碎知识(一)的更多相关文章
- Android零碎知识之Style and Theme
Android的styles资源文件中存在了我们在应用中定义的各种style,它们都是以style开始的元素,包含许多属性的集合.但我们一般般它们分为style和theme,那它们有什么区别呢? 一. ...
- Android零碎知识
1.当启动一个APP时按下后退键会调用onBackPressed方法. 如果想要屏蔽后退键只需要重写onBackPressed方法如下即可: @Override public void onBackP ...
- Xamarin Android教程Android基本知识版本介绍与系统介绍
Xamarin Android教程Android基本知识版本介绍与系统介绍 Xamarin Android教程Android基本知识版本介绍与系统介绍,开发Andriod有时候不像iOS一样轻松,因为 ...
- [转]【eoeAndroid索引】史上最牛最全android开发知识汇总
一.开发环境搭建 (已完成) 负责人:kris 状态:已完成 所整理标签为:搭建 SDK JDK NDK Eclipse ADT 模拟器 AVD 调试器(DEBUG) DDMS 测试 日志 Logca ...
- Android基本知识
Android是Google公司于2007年发布的基于Linux内核的手机操作系统.应用层主要以java为编程语言,应用层分为两层,函数层(Library) 和虚拟机(Virtual).中间 ...
- 【Xamarin开发 Android 系列 4】 Android 基础知识
原文:[Xamarin开发 Android 系列 4] Android 基础知识 什么是Android? Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Li ...
- 第01讲- Android背景知识
第01讲Android背景知识 Android是基于Linux系统 Android系统框图 : 第一.操作系统层(OS) 第二.各种库(Libraries)和Android 运行环境(RunTime) ...
- 写给Android App开发人员看的Android底层知识(1)
这个系列的文章一共8篇,我酝酿了很多年,参考了很多资源,查看了很多源码,直到今天把它写出来,也是战战兢兢,生怕什么地方写错了,贻笑大方. (一)引言 早在我还是Android菜鸟的时候,有很多技术我都 ...
- 【Python】 零碎知识积累 II
[Python] 零碎知识积累 II ■ 函数的参数默认值在函数定义时确定并保存在内存中,调用函数时不会在内存中新开辟一块空间然后用参数默认值重新赋值,而是单纯地引用这个参数原来的地址.这就带来了一个 ...
随机推荐
- 七个 Android 程序猿提高效率必备工具
Android 程序猿提高效率必备工具 0x00 Code tree for GitHub 这个 Chrome 浏览器插件.Github 作为最大同性交友网站,每天的工作几乎是从打开这个网站开始的.当 ...
- java 基础知识五 数组
java 基础知识五 数组 数组保存的是一组有顺序的.具有相同类型的数据. 同一个数组中所有数据元素的数据类型都是相同的. 可以通过数组下标来访问数组,数据元素根据下标的顺序,在内存中按顺序存放 ...
- MySQL意外关闭, 导致软件崩溃而无法启动的解决办法
在初次搭建XAMPP,Apache和MySQL都可以正常启动,一旦关机重启XAMPP时,发现Apache可以正常启动:而MySQL却不能正常运行,会碰到 Error: MySQL shutdown u ...
- shell脚本基本知识点
Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁.用户通过这个界面访问Linux操作系统内核的服务.Shell既是一种命令语言,又是一种程序设计语言. 1.Shell 环境 Shel ...
- 【转载】stm32的GPIO八种工作模式
一.推挽输出:可以输出高.低电平,连接数字器件:推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止.高低电平由IC的电源决定. 推挽电路是两个参数 ...
- Liunx的DHCP配置
1.DHCP简介 (1)DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个简化主机IP地址分配管理的TCP/IP标准协议,用户可以利用DHCP服 ...
- java面试题—精选30道Java笔试题解答(一)
下面都是我自己的答案非官方,仅供参考,如果有疑问或错误请一定要提出来,大家一起进步啦~~~ 1. 下面哪些是Thread类的方法() A start() B run() C exit() D getP ...
- linux内核Makefile整体分析
转自:http://www.cnblogs.com/amanlikethis/p/3675486.html <请阅读原文> 一.概述 1.本文的意义 众多的资料(<嵌入式Linux应 ...
- VS2017使用 SQL Localdb问题两则
VS2017使用 SQL Localdb问题两则 来博客园不算短了,总是索取者.最近使用VS2017,遇到一些问题,在解决时总是找不到拿来就能用的解决方案,在多方寻找,自行探索下,总算圆满解决,在这 ...
- Java并发包分析——BlockingQueue
之前因为找实习的缘故,博客1个多月没有写了.找实习的经历总算告一段落,现在重新更新博客,这次的内容是分析Java并发包中的阻塞队列 关于阻塞队列,我之前是一直充满好奇,很好奇这个阻塞是怎么实现.现在我 ...