系统提供的对话框
警告AlertDialog,进度对话框ProgressDialog,
日期选择对话框DatePickerDialog 时间选择对话框TimePickerDialog
常见事件监听器
OnClickListener,OnFocusChangeListener,OnKeyListener,OnTouchListener,OnCreateContextMenuListener
Bundle
//实例化Bundle对象,保存属性
Bundle b=new Bundle();
b.putString("name",name);
b.putString("age",2);
intent.putExtra("data",b);
Intent intent=getIntent();
Bundle b=intent.getBundleExtra("data");
自动完成文本框AutoCompleteTextView
private AutoCompleteTextView atv;
atv=findViewById...
String[] strs={"ab","ccc","dd"};
ArrayAdapter adapter=new ArrayAdapter(this,android.R.layout.simple_dropdown_item_lline,strs);
atv.setAdapter(adapter);
选项卡Tab
public MainActivity extends TabActivity{
public void onCreate(){
TabHost th=getTabHost();
LayoutInflater.from(this).inflate(R.layout.main,th.getTabContentView(),true);
th.addTab(th.newTabSpec("all").setIndicator("all record").setContent(R.id.TextView01));
th.addTab...
th.addTab...
}
}
xml:
进度条
对话框进度条,标题栏进度条,水平进度条
对话框进度条
public MainActivity{
public void onCreate(){
onClick(){
showDialog(0);
}
}
protected Dialog onCreateDialog(int id){
ProgressDialog dialog=new ProgressDialog(this);
dialog.setTitle("test");
dialog.setIndeterminate(true);
dialog.setMessage("loading");
dialog.setCancelable(true);
return dialog;
}
}
标题栏进度条
public class MainActivity{
public void onCreate(){
//设置窗口特征
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setProgressBarIndeterminateVisibility(true);//show
setProgressBarIndeterminateVisibility(false);//hide
}
}
水平进度条
ProgressBar bar=findViewById...
bar.incrementProgressBy(1);//增加进度
bar.incrementProgressBy(-1);//减少
时间日期选择器
Calendar c=Calendar.getInstance();
year=c.get(Calendar.YEAR);
month=c.get(Calendar.MONTH);
day=c.get(Calendar.DAY_OF_MONTH);
protected Dialog onCreateDialog(int id){
if(id==0){
return new DatePickerDialog(this,l1,year,month,day);
}else{
return new TimePickerDialog(this,l2,hour,minute,false);
}
private OnDateSetListener l1=new OnDateSetListener(){
public void onDateSet(){
}
};
private OnTimeSetListener l2=new OnTimeSetListener(){
public void onTimeSet(){
}
};
}
ListView
public class Main extends ListActivity{
onCreate(){
String str={"a","b","c"};
ArrayAdapter adapter=new ArrayAdapter(
this,R.layout.simple_list_item,strs);
setListAdapter(adapter);
}
}
SQLite
SQLite是嵌入式数据库引擎,针对内存等 资源有限制的设备提供一种高效的数据库引擎
它没有服务器进程,所有的内容包含在同一个单文件 中。文件是跨平台的,可以自由复制
openOrCreateDatabase,
private void createTable(SQLiteDatabase db){
String sql="create table User(_id integer primary key autoincrement,name text,paswd text)";
db.execSQL(sql);
}
db.delete
db.insert
查询数据
public Cursor query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,
String having,String orderBy,String limit)
Cursor是一个游标接口,提供遍历查询结果的方法
常用方法:getCount,isFirst,isLast,moveToFirst,moveToLast,move(int offset),moveToNext,moveToPrevious,
getInt,getString
ContentProvider
应用 程序之间的相互访问的统一接口,被定义在Content Provider中,包括增删改查
Content Provider 用来保存和检索数据,使应用 程序间的相互访问数据成为可能,是跨应用程序共享数据的唯一方法
ContentResolver中提供了和ContentProvider对应的方法,间接地通过操作ContentResolver来操作ContentProvider
ContentResolver通过应用程序的getContentResolver()获得。一般下,ContentProvider是单实例,但可有多个ContentResolver在不同的应用 程序和不同的进程之间和ContentProvider交互
ContentProvider是通过URI对象来共享其数据。URI对象必须以"content://"开头
private void query(){
ContentResolver cr=getContentResolver();
Uri uri=Contacts.People.CONTENT_URI;
String[] projection={Contacts.PeopleColumns.NAME,
Contacts.PeopleColumns.NOTES};
String selection=Contacts.PeopleColumns.NAME+"=?";
String[] selectionArgs={"yaohuiye"};
String sortOrder=Contacts.PeopleColumns.NAME;
Cursor c=cr.query(uri,projection,selection,selectionArgs,sortOrder);
if(c.moveToFirst()){
for(int i=0;i
多媒体
播放音频和视频 用到MediaPlayer,JetPlayer类,录制音频及视频用到MediaRecorder类
MediaPlayer p=MediaPlayer.create(this,R.raw.test);
p.start();
MediaPlayer m=new MediaPlayer();
String path="/sdcard/test.mp3";
m.setDataSource(path);
m.prepare();
m.start();
String path="http://....mp3";
Uri uri=Uri.parse(path);
MediaPlayer p=MediaPlayer.create(this,uri);
p.start();
操作图片
在android中操作图片是通过使用Drawable类来完成
通过Bitmap和BitmapFactory类来读取文件
String path="/sdcard/beauty.jpg";
Bitmap bm=BitmapFactory.decodeFile(path);
setWallpaper(bm);//设置桌面
android中的动画
android中的动画 一种是Tween动画,可以使视图组件移动,放大,缩小及产生透明度的变化,另外是Frame动画,通过顺序播放排列好的图片实现
动态图形绘制的基本思路,创建一个类继承View类或继承SurfaceView类,覆盖onDraw方法,使用Canvas对象在界面上
绘制不同的图形,使用invalidate方法刷新界面
android中的具体 的网络编程方式
针对TCP/IP的Socket,ServerSocket
针对UDP的DatagramSocket,DatagramPackage
针对直接URL的URL,URLConnection,HttpURLConnection
Google集成了Apache http客户端,这使得使用HTTP进行网络编程成为可能
使用Web Service进行网络编程
使用WebView视图组件显示网页
Web Service通过一种XML格式的特殊文件 来描述方法、参数、调用和返回值,这种格式的XML文件称为WSDL即Web服务描述语言。Web Service 采用的通信协议是SOAP,即简单对象访问协议,实现方式 KSOAPjar包
android提供了内置的浏览器,该浏览器使用了开源的Webkit引擎 ,使用浏览器需要通过WebView视图组件来实现
WebView w=findViewById...
String url="http://www.baidu.com";
w.loadUrl(url);
html=""
w.loadData(html,"text/html","utf-8");