初涉Androidの笔记
来源:互联网 发布:java web 视频播放 编辑:程序博客网 时间:2024/05/17 21:38
UI设计
Activity的生命周期
打开A(page)调用的方法
onCreate();
onStart();
onResume();
在A(page)的基础上再打开B(page)时
A->onPause();
B->onCreate();
B->onStart();
B->onResume();
A->onStop();(当A被完全遮盖是会调用该方法)
由B返回A时
B->onPause();
A->onRestart);
A->onStart();
A->onResume();
B->onStop();
B->onDestroy();
按home键时;
A->onPause();
System->onCreate();
System->onStart();
System->onResume();
A->onStop();
布局管理器
FrameLayout(框架布局)
LinearLayout(线性布局)
TableLayout(表单布局)
AbsoluteLayout(绝对布局)
RelativeLayout(相对布局)
事件处理
菜单(OptionsMenu/ContextMenu)
OptionsMenu/
向Activity添加菜单
重写onCreateOptionsMenu(Menu menu)方法
menu.add()添加选项
重写onOptionsItemSelected(MenuItem item)方法添加事件
item.getItemId()获取itemid的值
finish();结束程序;
ContextMenu
重写onCreateContextMenu()
menu.add()添加选项
重写onContextItemSelected()方法添加事件
registerForContextMenu(getListView());注册上下文菜单
Adapter/自定义Adapter
继承BaseAdapter 类
package com.lxc;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class MyAdapter extends BaseAdapter {
List listData;
Context context;
//创建构造函数
public MyAdapter(Context ctx,List data){
context = ctx;
listData = data;
}
@Override
//getCount()方法返回的是ListView显示的行数
public int getCount() {
// TODO Auto-generated method stub
return listData.size();//该方法返回的是listData中有多少行数据
}
@Override
public Object getItem(int index) {
// TODO Auto-generated method stub
return listData.get(index);
}
@Override
public long getItemId(int index) {
// TODO Auto-generated method stub
return index;
}
@Override
public View getView(int index, View rowview, ViewGroup root) {
// TODO Auto-generated method stub
View newRowView = View.inflate(context, R.layout.list, null);//获取布局模版的对象
//获取布局模版中的各个组件
ImageView img = (ImageView) newRowView.findViewById(R.id.img);
TextView title = (TextView) newRowView.findViewById(R.id.title);
Button btnDownload = (Button) newRowView.findViewById(R.id.bt1);
//获取数据对象
HashMap map = (HashMap)listData.get(index);
//为数据对象设值
title.setText(map.get("name").toString());
img.setImageResource(Integer.parseInt(map.get("img").toString()));
btnDownload.setTag(index);//为每一个该组件设置标记
//添加事件
btnDownload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Integer sTag = (Integer)v.getTag();
Toast.makeText(context,"buttonDownload"+sTag,Toast.LENGTH_SHORT).show();
}
});
return newRowView;
}
}
ListView
ArrayAdapter(Context context,int text ViewResoureId,List objects)
(只能显示一行构建ArrayAdapter需要三个参数,第一个参数是上下文,第二个参数是指定列表项的模板,第三个是列表项中显示的数据)
SimpleAdapter()
采用SimpleAdapter()可以使用继承ListActivity类来实现显示ListView
public class DMNote extends ListActivity {
/** Called when the activity is first created. */
private TextView textView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView = (TextView)findViewById(R.id.textView1);
textView.setText(R.string.list);
ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
HashMap<String,String> map1 = new HashMap<String,String>();
HashMap<String,String> map2 = new HashMap<String,String>();
HashMap<String,String> map3 = new HashMap<String,String>();
HashMap<String,String> map4 = new HashMap<String,String>();
map1.put("list", "作者介绍");
map2.put("list", "人物介绍");
map3.put("list", "内容详解");
map4.put("list", "other");
list.add(map1);
list.add(map2);
list.add(map3);
list.add(map4);
SimpleAdapter listAdapter = new SimpleAdapter(this, list, R.layout.onedir, new String [] {"list"}, new int [] {R.id.textView2});
setListAdapter(listAdapter);
}
}
SimpleCursorAdapter()
Spinner
步骤:
1、现在Layout下的XML中添加一个Spinner组件;
2、再获取Spinner组件;
3、创建适配器(ArrayAdaper);
4、在将适配器设置给Spinner组件(setAdapter());
【5、设置事件(setOnItemSelectedListenter())】
Gallery
AlertDialog
数据库
检查存储卡是否存在:
Environment.getExternalStorageState();用于获取SDCard的状态,如果手机装有SDCard,并且可以进行读写,那么方法返回的状态等于Environment.MEDIA_MOUNTED.
Environment.getExternalStorageDirectory();用于获取SDCard的目录。
SharePreferences
存储数据
//获取SharedPreferences 对象
SharedPreferences sharePreferences = getSharedPreferences(
"Login", Activity.MODE_PRIVATE);
//通过sharePreferences接口的edit获取SharedPreferences.Editor对象
SharedPreferences.Editor saveInfo = sharePreferences.edit();
//通过putXXX()方法存值
saveInfo.putString("name", name.getText().toString());
saveInfo.putString("password", password.getText().toString());
saveInfo.commit();
获得数据
SharedPreferences sharePreferences = getSharedPreferences(
"Login", Activity.MODE_PRIVATE);
sharePreferences.getString("name", null);
通过getXXX()方法获取值
数据库
public class UserDAO{
//1.操作数据库
SQLiteDatabase database;
Context context;
//定义构造函数
public UserDAO(Context cont){
this.context = cont;
}
//定义创建数据的的方法
public void openDb(){
UserDbHelper dbHelper = new UserDbHelper(context);
database = dbHelper.getWritableDatabase();
}
//定义关闭数据库的值
public void closeDb(){
database.close();
}
public void addUser(String name,String password){
String insertSql = "insert into users(username,userpwd) values (?,?)";
database.execSQL(insertSql, new Object[]{name,password});
}
//2.初始化数据库
class UserDbHelper extends SQLiteOpenHelper{
//onCreate创建数据库
public UserDbHelper(Context context) {
super(context, "userInfo.db", null, 1);
// TODO Auto-generated constructor stub
}
@Override
//onCreate创建表
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String sql = "create table users(_id integer primary key autoincrement,username text not null,userpwd text not null)";
db.execSQL(sql);
}
@Override
//当数据库发生变化时操作
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
}
- 初涉Androidの笔记
- android学习笔记のAppWidget
- Android学习笔记の一
- Android学习笔记の二
- Android学习笔记の三
- Android学习笔记の四
- Android学习笔记の五
- Android学习笔记の六
- Android学习笔记の七
- Android学习笔记の八
- Android学习笔记の九
- android笔记
- android笔记
- android笔记
- Android笔记
- Android笔记
- android笔记
- android 笔记
- What is difference between abstract class and interface
- SSAS-实用的DMV查询
- LinkedList vs ArrayList
- asp.net Inherits、Src、CodeBehind区别
- 怎样使用web.config
- 初涉Androidの笔记
- Calendar和Date深度剖析
- 关于 Cursor
- Androidの广播与服务
- Android学习笔记
- Intent中的四个重要属性
- android系统action
- Struts2中有关struts-default.xml,struts.xml,struts.properties文件详解
- 全面剖析XMLHttpRequest对象