初涉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 contextint 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.onedirnew 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

}

}

}