您的位置:首页 > 移动开发 > Android开发

Android 基础笔记

2014-05-08 12:37 211 查看
1,android开发入门教程
2,精通android3
develeper.android.
3,
add-ons 附件的包
docs android html格式的离线文档
platorms SDK核心内容
tools提供的工具

1,安卓日志

error/warn/info/debug
2,logcat
日志过滤信息

editview 中的inputtype属性是要求填写的格式,指的是字符串还是数字
password ="true"密码输入框
radiobutton 是放在radiogroup中的

checkbox多选框

可以利用getApplicationContext()来获取上下文对象

Toast.makeText(getApplicationContext(), "默认Toast样式",

Toast.LENGTH_SHORT).show();

布局设置
layout.setOrientation(LinearLayout.VERTICAL);

//设置布局属性

LayoutParams params = new
LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT
);

布局文件中添加控件

tv.setLayoutParams(params);
//把视图控件添加到layout布局对象中
layout.addView(tv);

1,simpleCurAdapter 游标适配器
根据数据不同进行适配
数组 ArrayAdapter
eg:
1, ArrayAdapter aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,list);
2, lv.setAdapter(aa);//将适配器数据映射ListView上
3,//为列表添加监听
lv.setOnItemClickListener(new OnItemClickListener() {
4, this.setContentView(lv);设置视图
简单适配器SimpleAdapter

自定义适配器 继承BaseAdapter

1,tabhost选项卡,标签页

LayoutInflater是用来载入页面的,功能类似于findViewbyID
LayoutInflater是用来找layout下xml布局文件,并且实例化;而findViewById()是找具体xml下的具体 widget控件.

主activity继承自 tabactivity
Fragement中的组件有自己的声明周期,而不是与activity同生共死的,有各自的声明周期,用起来比较灵活
2,alertdialog对话框
方法:

创建Builder对象
调用buider对象方法设置属性
create()方法
show()方法

setpositivebutton
setnegativebutton

菜单
1,menu
菜单分为
选项菜单,子菜单,上下文菜单
onCreateOptionsMenu(Menu menu)方法
onOptionsItemSelected(MenuItem item)方法,绑定事件

MenuItem m[] = new MenuItem[3];

public boolean onCreateOptionsMenu(Menu menu) {
// 需要创建SubMenu m1,由m1进行添加
SubMenu m1 = menu.addSubMenu("你喜欢的颜色");
m[0] = m1.add(0, COLOR_RED, 1, "红色").setChecked(true);
m[1] = m1.add(0, COLOR_BLACK, 2, "黑色").setChecked(true);
m[2] = m1.add(0, COLOR_YELLOW, 3, "黄色").setChecked(true);
m[1].setAlphabeticShortcut('o');
return super.onCreateOptionsMenu(menu);
}

再由onOptionsItemSelected(MenuItem item)把每一项绑定时间监听方法

service和activity都是由context派生出来的
因此它们都可以调用Context里定义的如getResources()/getContentResover()等方法

Socket编程
一般选用1024以上的端口号

Intent
启动setClass(上下文对象,目的类)
setClassName()//加包名类名
Component属性代表这个Intent的组件的属性,表明组件类
intent.setAction()隐式启动 里面加一个定义的名字
隐式的intent适用于
组件可以设置多个action,可以被多个intent启动

PendingIntent()潜在意图,一般设置在没有监听事件的地方

broadcast广播
系统会限制自己的应用的程序发送系统的广播
耗时的操作不能再onReceive()方法中,建议启动service,完成耗时的操作
在xml文件中注册广播的话是静态注册,在程序关闭时广播仍然在
在java代码中注册广播是动态注册,程序关闭时广播接收不再存在,而且可以取消
一般接收系统发送的广播

私有文件夹的读写
在android的/date/date文件夹里

preference

是一种应用程序内部轻量级的数据存储方案,Preferences主要用于存储和查询简单数据类型的数据
这些简单数据类型包括boolean。int。float。long。String
存储方式为以键值对的形式存放在应用程序的私有文件夹下
一般用来存储应用程序的设置信息,如应用程序的色彩方案,文字字体等。在应用程序中获取的方式有两种
调用Contex对象的getSharedPreferences方法获得SharedPreferences对象。需要传入名称和打开模式
调用Activity对象的getSharedPreferences方法获得

service
服务
service和activity都是继承自context,都可以直接调用getResources,getContentResolver等方法

获取系统资源
getResources()
eg:
Service和Activity都是继承自Context的
Resources myResources = getResources();

InputStream myFile = myResources.openRawResource(R.raw.myfilename);
可以直接调用getContentResolver

多次调用startservice不会再调用oncreate方法
多次调用bindservice对同一个service绑定一次

AIDL是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口

AIDL文件
以.aidl为文件后缀名,除了基本数据类型外只允许使用String、list、Map、CharSequence
即使在一个包里面也要导入包

android中的系统服务
电话管理
音频管理
震动器
手机闹钟

1,对话框
AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);
//使用builder设置对话框的title,button,icon等
builder.setIcon()...

// 获取屏幕宽高

Display display = getWindowManager().getDefaultDisplay();

mScreenWidth = display.getWidth();

mScreenHeight = display.getHeight();

TEXTview详解

拨打手机

android:text="拨打手机:13888888888"

android:autoLink="phone"

访问web网页:

android:text="雨松MOMO的博客:http://blog.csdn.net/xys289187120"

android:autoLink="web"

发送邮件

android:text="发送邮件:xuanyusong@gmail.com"

android:autoLink="email"

显示图片

android:drawableBottom="@drawable/icon"

Editview

android:digits="1234567890.+-*/%\n()"

限制输入框中只能输入自己定义的这些字符串如果输入其它将不予以显示

android:phoneNumber="true"

限制输入框中只能输入手机号码

android:password="true"

限制输入框中输入的任何内容将以"*"符号来显示

android:hint="默认文字"

输入内容前默认显示在输入框中的文字

android:textColorHint="#FF0000"

设置文字内容颜色

android:enabled="false"

设置输入框不能被编辑

监听软键盘的按键事件

addTextChangedListener监听用户输入状态

科学的刷屏的代码,保证每次显示刷帧的时间相同,科学优化

public static final int TIME_IN_FRAME = 30;

@Override

public void run() {

while (mIsRunning) {

/**取得更新游戏之前的时间**/

long startTime = System.currentTimeMillis();

/**在这里加上线程安全锁**/

synchronized (mSurfaceHolder) {

/**拿到当前画布 然后锁定**/

mCanvas =mSurfaceHolder.lockCanvas();

Draw();

/**绘制结束后解锁显示在屏幕上**/

mSurfaceHolder.unlockCanvasAndPost(mCanvas);

}

/**取得更新游戏结束的时间**/

long endTime = System.currentTimeMillis();

/**计算出游戏一次更新的毫秒数**/

int diffTime = (int)(endTime - startTime);

/**确保每次更新时间为30帧**/

while(diffTime <=TIME_IN_FRAME) {

diffTime = (int)(System.currentTimeMillis() - startTime);

/**线程等待**/

Thread.yield();

}

}

}

强制横屏的方法

view plain

//强制为横屏

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

强制竖屏的方法

view plain

//强制竖屏

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

数据处理

记录软件中用户设置的音量大小,用户输入的查找信息,一般这样保存数据

SharedPreferences保存后生成的是XML文件

SharedPreferences只能调用getSharedPreferences("test",Context.MODE_APPEND);得到对象

调用edit()方法,创建其内部类的对象

Editor ed = prepenences.edit();

ed.putString("color","red");

ed.commit();//调用这个方法存数据

android.permission.MODIFY_PHONE_STATE权限已经失效

sqliteopenhelper 数据库操作助手类
是用来管理数据库的
simplecursoradapter是android提供的直接在数据库中取到的adapter
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: