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 ■ 函数的参数默认值在函数定义时确定并保存在内存中,调用函数时不会在内存中新开辟一块空间然后用参数默认值重新赋值,而是单纯地引用这个参数原来的地址.这就带来了一个 ...
随机推荐
- emmet(快速开发)的使用
emmet可以帮助您快速编写HTML和CSS代码,从而加速Web前端开发. 比如<html>.<head>.<body>等,现在你只需要1秒钟就可以输入这些标签. ...
- ReactJS入门:展示数据
由于公司开发需要,博主利用闲暇的时间对ReactJS的基础知识进行了一些粗浅的认识和了解.博主对ReactJS的学习主要来自官网(http://reactjs.cn/react/docs/thinki ...
- Java基础学习(一)—方法
一.方法的定义及格式 定义: 方法就是完成特定功能的代码块. 格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2){ 函数体; return 返回值; } 范例1: 写一个两个 ...
- OS X background process
Types of Background Process 1. login item 2. xpc service 3. daemon/agent (也可以叫 mach service) 4. star ...
- java 基础知识七 装箱和拆箱
java 基础知识七 装箱和拆箱 数据类型可分为两大种,基本数据类型(值类型)和类类型(引用数据类型) 装箱:把基本类型用他们相对应的引用类型包装起来,使他们可以具有对象的特质 基本数据类型 ...
- 第三人称角色移动及自由移动视野(RigidBody实现)
重点:向量的运算.在获得水平及垂直方向的速度之后,将方向进行重设,让方向与视野同步(即:相机的方向与人物方向相同) 下面以一个实例来说明如何操作: 1.如图创建一个地形(Terrain),两个正方体( ...
- Ubuntu下安装Tomcat7
第一部分:基本安装 1.打开http://tomcat.apache.org/download-70.cgi,下载apache-tomcat-7.0.68.zip. 2.拷贝至合适位置,如/usr/l ...
- 关于 centos 7系统,iptables透明网桥实现【转载请注明】
首先建立网桥:(使用bridge) 示例 桥接eth0 与 eth1 网口 /sbin/modprobe bridge /usr/sbin/brctl addbr br0 /sbin/ifup ...
- lua table表
lua table表 语法结构 创建一个 table 直接使用 "{}" 即可 table1 = {} -- 赋值 table1["name"] = " ...
- Unity调用Android的两个方式:其一、调用jar包
unity在Android端开发的时候,免不了要调用Java:Unity可以通过两种方式来调用Android:一是调用jar.二是调用aar. 这篇文章主要讲解怎么从无到有的生成一个jar包,然后un ...