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

android笔记(1)

2016-03-09 10:55 351 查看
1. 两种不同的上下文
弹Toast时,无论传递MainActivity.this还是getApplicationContext(),二者都可以,但显示对话框时,MainActivity.this作为参数是可以的,而getApplicationContext()不可以,这是因为getApplicationContext()表示的是全局的上下文,而Activity上下文不仅包含了全局上下文,还包含了Activity特有的上下文属性,本质是Toast用到的是全局上下文里的变量,而显示对话框用到的是Activity特有的上下文变量

2.当Android项目中有引用到第三方jar包时,运行的时候一定要进入到Build Path页面,选中该jar包

3.获取当前版本信息
通过PackageManager获得包信息PackageInfo,然后调用getVersionCode和getVersionName

4.联网(HTTPURLConnection和HTTPClient)
URL url = new URL(getResources().getString(R.string.update_url));
//URL url = new URL("http://192.168.0.110:8080/heima45/info.json");

conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setReadTimeout(5000);
conn.setConnectTimeout(5000);
conn.connect();

int code = conn.getResponseCode();
if(200 == code){
InputStream is = conn.getInputStream();

ByteArrayOutputStream bs = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length = 0;
try {
while(-1 != (length = inputStream.read(buffer))){
bs.write(buffer,0,length);
}

inputStream.close();
return new String(bs.toByteArray());
5.弹出Toast的方式

6.显示对话框
AlertDialog.Builder adb = new AlertDialog.Builder(act);
adb.setTitle("应用程序更新");
adb.setMessage(desc);
//adb.setCancelable(false);//设置对话框不能取消,但是不建议使用
adb.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// 当对话框被取消时
gotoMainActivity();
}
});
adb.setNegativeButton("取消",new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//返回主页面
gotoMainActivity();
}
});

adb.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.out.println(update_url);
downloadAPK(update_url);
}
});
adb.show();
7.下载和安装,使用第三方jar包,安装则使用系统的安装程序

8.首页睡眠

9.九宫格的显示,并配有点击事件,相当于ListView

10.布局文件里ImageView的图片背景backage和src的区别

11.Message和Handler的使用
Message message = Message.obtain();

private Handler handler = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case GOTO_MAIN_UI:
gotoMainActivity();
break;
case SHOW_UPDATE_DIALOG:
showDialog((String)msg.obj);
break;
default:
break;
}
}
};

12.String字符串与JSON的转换
(1)Object/String-->JSON(org.json.JSONObject方式)
JSONObject json = new JSONObject(result);
int versionCode = json.getInt("code");
String desc = json.getString("desc");
update_url = json.getString("update_url");
(2)Object/String-->JSON(net.sf.json.JSONObject 方式)

JSONObject jsonobj = JSONObject.fromObject(map);
JSONArray jsonarr = JSONArray.fromObject(jobList);

// 引入相应的包

//json-lib-2.2-jdk15.jar

import net.sf.json.JSONArray;

import net.sf.json.JSONObject;

1. //把java 对象列表转换为json对象数组,并转为字符串

JSONArray array = JSONArray.fromObject(userlist);

String jsonstr = array.toString();

2.//把java对象转换成json对象,并转化为字符串

JSONObject object = JSONObject.fromObject(invite);

Log4jInit.ysulogger.debug(object.toString());

3.//把JSON字符串转换为JAVA 对象数组

String personstr = getRequest().getParameter("persons");

JSONArray json = JSONArray.fromObject(personstr);

List<InvoidPerson> persons = (List<InvoidPerson>)JSONArray.toCollection(json, InvoidPerson.class);

4.//把JSON字符串转换为JAVA 对象

str = "{\"lendperson\":\"李四\",\"lendcompany\":\"有限公司\",\"checkperson\":\"李四\",

\"lenddate\":\"2010-07-19T00:00:00\",\"lendcounts\":4,\"

passports\":[{\"passportid\":\"d\",\"name\":\"李豫川\",\"passporttype\":\"K\"},

{\"passportid\":\"K9051\",\"name\":\"李平\",\"passporttype\":\"K\"},

{\"passportid\":\"K90517\",\"name\":\"袁寒梅\",\"passporttype\":\"K\"},

{\"passportid\":\"K905199\",\"name\":\"贺明\",\"passporttype\":\"K\"}]}";

JSONObject jsonobject = JSONObject.fromObject(str);

PassportLendsEntity passportlends = null;

try {

//获取一个json数组

JSONArray array = jsonobject.getJSONArray("passports");

//将json数组 转换成 List<PassPortForLendsEntity>泛型

List<PassPortForLendsEntity> list = new ArrayList<PassPortForLendsEntity>();

for (int i = 0; i < array.size(); i++) {

JSONObject
object = (JSONObject)array.get(i);

PassPortForLendsEntity
passport = (PassPortForLendsEntity)JSONObject.toBean(object,

PassPortForLendsEntity.class);

if(passport
!= null){

list.add(passport);

}

}

//转换PassportLendsEntity 实体类

passportlends = (PassportLendsEntity)JSONObject.toBean(jsonobject, PassportLendsEntity.class);

也可以用GSON可以实现Object/String与JSON的双向互换

13.SharedPreferences的使用
SharedPreferences sp = getSharedPreferences("config",MODE_PRIVATE);
Editor editor = sp.edit();
editor.putString().putBoolean()...
editor.commit();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: