android笔记

1.SQLite

创建数据库

Android 不自动提供数据库。在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法:

  • 构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。
  • onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。
  • onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。

SQLiteOpenHelper 的子类调用 getReadableDatabase() 或 getWriteableDatabase() 方法,你可以得到 SQLiteDatabase 实例。

使用SQLiteDatabase 对象的 insert(), update(), delete(),rawQuery/query 方法,进行增删改查。

Cursor---查询结果集

用StringBuilder写Sql

例:      StringBuilder selectBuilder = new StringBuilder();

selectBuilder.append("select*from").append(DBHelper.TABLE_NAME).append("where")

        .append(DBHelper.COLUMN_DATE).append(" =?").append(" order by ").append(DBHelper.COLUMN_TYPE);

2.AlertDialog

new AlertDialog.Builder(this)

.setTitle("请选择")

.setIcon(android.R.drawable.ic_dialog_info)

.setSingleChoiceItems(newString[]{"选项1","选项2","选项3","选项4"},0,

newDialogInterface.OnClickListener(){

publicvoidonClick(DialogInterfacedialog,intwhich){

dialog.dismiss();

}

}

        )

        .setPositiveButton("确定", new DialogInterface.OnClickListener(){

@Override

publicvoidonClick(DialogInterfacedialog,intwhich)

{

}

})

.setNegativeButton("取消",null)

.setNeutralButton("Neutral2",newDialogInterface.OnClickListener(){

@Override

publicvoidonClick(DialogInterfacearg0,intarg1){

//TODOAuto-generatedmethodstub

arg0.cancel();

}

})

        .show();

3.Toast

Toast.makeText( ToastActivity.this,“hello”,Toast.LENGTH_LONG).show();

4.spinner

spinner = (Spinner) findViewById(R.id.spinType);

spinner.setAdapter(adapter);

//给弹出的选择框加一个标题

spinner.setPrompt("选择类型");

其中adapter:

adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, String[] );

或adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, ArrayList<String>);

或adapter=new ArrayAdapter<MyEnum>(this,android.R.layout.simple_spinner_item;

adapter.add(MyEnum.xxx);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

ArrayList<String>形式的adapter,可以动态删减下拉框中的内容,adapter.add,adapter.remove

5.Menu

        @Override

publicbooleanonCreateOptionsMenu(Menumenu){

//TODOAuto-generatedmethodstub

/*添加三个菜单项目,并设置图片*/

menu.add(0,1,1,"Edit").setIcon(android.R.drawable.ic_menu_edit);

menu.add(0,2,2,"Open").setIcon(android.R.drawable.ic_menu_agenda);

menu.add(0,3,3,"Exit").setIcon(android.R.drawable.ic_lock_power_off);

returnsuper.onCreateOptionsMenu(menu);

}

@Override

publicbooleanonOptionsItemSelected(MenuItemitem){

//TODOAuto-generatedmethodstub

switch(item.getItemId()){

case1:

/*显示main.xml为主屏布局*/

setLayoutShow(R.layout.main);

NoteDebug("编辑文件Layout");

break;

case2:

/*显示open.xml为主屏布局*/

setLayoutShow(R.layout.open);

NoteDebug("打开文件Layout");

break;

case3:

/*退出*/

finish();

NoteDebug("Byebye");

break;

default:

break;

}

returnsuper.onOptionsItemSelected(item);

}

privatevoidNoteDebug(StringshowString){

/*显示Toast提示*/

Toast.makeText(this,showString,Toast.LENGTH_SHORT).show();

        }

------------------

   MenuItem exit,testItem;

    public boolean onCreateOptionsMenu(Menu menu) {

//TODOAuto-generatedmethodstub

/*添加退出菜单*/

exit=menu.add("Exit");

/*设置退出菜单图片*/

exit.setIcon(android.R.drawable.ic_menu_close_clear_cancel);

testMenuItem=menu.add("testItem");

testMenuItem.setIcon(android.R.drawable.ic_menu_call);

returnsuper.onCreateOptionsMenu(menu);

}

@Override

publicbooleanonOptionsItemSelected(MenuItemitem){

//TODOAuto-generatedmethodstub

/*结束Activity*/

if(item.equals(exit)){

finish();

}

elseif(item.equals(testMenuItem)){

Toast.makeText(this,"testmenuitemisclicked",Toast.LENGTH_LONG).show();

}

returnsuper.onOptionsItemSelected(item);

    }

6.TabView

private TabHost tabHost;

tabHost = getTabHost();

tabHost.addTab(tabHost.newTabSpec("today").setIndicator("今日账单",getResources().getDrawable(R.drawable.tab_today))

.setContent(newIntent(this,Today.class)

//刷新

                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

tabHost.addTab(tabHost.newTabSpec("history").setIndicator("历史账单",getResources().getDrawable(R.drawable.tab_history))                .setContent(new Intent(this,History.class)));

tabHost.setOnTabChangedListener(this);

    @Override

publicvoidonTabChanged(StringtabId){

if(tabId.equals("history"))

{

Intentintent=newIntent(this,SelectDate.class);

startActivityForResult(intent,REQUEST_QUERYDATE);

}

    }

7.日期、日历

        Calendar calendar = Calendar.getInstance();

DateFormatformat=newSimpleDateFormat("yyyy-MM-dd");

        String today = format.format(calendar.getTime());

8.ListView

String []name=new String[]{"Java","C++","C","C#","VB","XML",".NET","J#"};

ArrayAdapter<String>arrayadapter=newArrayAdapter<String>(this,

        android.R.layout.simple_list_item_1,name);

listview = (ListView)findViewById(R.id.list);

listview.setAdapter(arrayadapter);

listview.setOnItemClickListener(this);

------复杂点的

listview.setAdapter(new ListItemAdapter(this));

class ListItemAdapter extends BaseAdapter     {};

this.layoutInflater = LayoutInflater.from(context);

view=layoutInflater.inflate(R.layout.listview_item, null);----inflate一个新的布局

9.Html.fromHtml

Spanned spannable = Html.fromHtml("the google url: " +

"<ahref=\"http://www.google.com\">http://www.google.com</a><br/>"+

"thetelephone:"+

"<ahref=\"tel:18603045201\">18603045201</a>"

                );

textview.setText(spannable);textview.setMovementMethod(LinkMovementMethod.getInstance());//点击链接可以直接访问网页或者打电话

SpannableString ss=

newSpannableString("thegoogleurl:http://www.google.com18600000001");

ss.setSpan(newURLSpan("http://www.google.com"),

16,37,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

ss.setSpan(newURLSpan("tel:18603045201"),

                38, 49, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

textview.setText(ss);textview.setMovementMethod(LinkMovementMethod.getInstance());

相关推荐