一 对话框(Dialog)
对话框通常有消息提示框、确定取消框、没有安全的提示语
1 消息框(确定或返回):
new Builder(MainActivity.this).setTitle("白社会").setIcon(R.drawable.logoico)
.setMessage("基于搜狐网的应用,所有数据均来自搜狐。/n当前版本V1.0,版权所有?2010")
.setNegativeButton("返回", new OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
}
}).show();
break;
2 确定取消框(退出系统提示):
new Builder(MainActivity.this).setTitle("提示").setMessage("是否退出?")
.setPositiveButton("确定", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
}
}).setNegativeButton("取消", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
}).show();
3 没有按钮的一句话消息提示()
if (mother_blood.equals("")) {
Toast.makeText(XueXing.this, "请选择妈妈的血型!", Toast.LENGTH_SHORT).show();
} else if (father_blood.equals("")) {
Toast.makeText(XueXing.this, "请选择爸爸的血型!", Toast.LENGTH_SHORT).show();
二 添加Menu菜单
1普通菜单(关于、帮助、退出)
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(1, 1, 1, R.string.help).setIcon(android.R.drawable.ic_menu_help);
menu.add(1, 2, 2, R.string.about).setIcon(android.R.drawable.ic_menu_info_details);
menu.add(1, 3, 3, R.string.exit).setIcon(android.R.drawable.ic_menu_close_clear_cancel);
return super.onCreateOptionsMenu(menu);
}
2长按菜单(类似右键菜单)
onCreate中注册菜单
registerForContextMenu(mylist);
另外两个函数要写
@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch(item.getItemId()){
case MENU_DETAIL:
break;
case MENU_SURE:
break;
}
return super.onContextItemSelected(item);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
menu.add(0,MENU_DETAIL,0,"查看详细信息");
menu.add(0,MENU_SURE,0,"确认日期");
menu.setHeaderTitle("操作");
super.onCreateContextMenu(menu, v, menuInfo);
}
三 传送数据到新意图,类似于mobile的 Form.show()
带参数传递,通过Intent和Bundle
Intent intent = new Intent();
intent.setClass(YiMiao.this, YiMiaoDetail.class);
Bundle bundle = new Bundle();
bundle.putString("YIMIAO_ID", id);
intent.putExtras(bundle);
startActivity(intent);
接受参数
ym_id=bundle.getString("YIMIAO_ID");
另外,一种方法是不通过Bundle,setClass setString setInt
再通过this.getIntent().getDate() 取到参数
四 信息提醒
提醒形式:铃声 震动 闪灯 状态栏等
五 日志调试
import android.util.Log;
Log.i("id:", id);
日志方便大家调试和跟踪程序。
Log.i(Verbose) 详细信息
Log.i(Debug) 调试信息
Log.i(Info) 通知信息
Log.i(Warn) 警告信息
Log.i(Error) 错误信息
六 SQLite数据库
1 SQLite OpenHelper
DatabaseHelper 继承于 SQLiteOpenHelper 用来创建和管理数据库
onCreate和onUpgrade封装了创建和更新表的方法
2 增删改查CRUD
3 数据库如何部署到真机?
这个是好多开发者要遇到的实际问题,也是目前还没发现好的解决办法,至少我还没搜到如何解决部署安装。
开发总结
借助一个项目学习开发android程序,吃苦头中有所总结和醒悟,特意总结下来,希望对己和他人有所助。
首先,应该学习android开发的基础知识,有所了解,方法属性如此之多,想要全记住没必要,重点是理解知识点,融会贯通。
比如,常用的知识点菜单、对话框、View视图、数据传送、SQLite数据库相关操纵等
第二,有些错误,通常是自己语法或基础知识点掌握不牢,应该加强理解和实践。
修改BUG思路:
1 规范命名,养成好习惯。检查string 和layout 中命名是否缺少,是否正确。
2 检查AndroidManifest.xml是否注册了activity
3 有关方法和属性是否使用得当。
4 数据库相关,语句是否正确,数据库是否打开忘关闭或关闭了又要用。
第三,要在项目开发中逐步提高重实践重思想,只是一味看书学习,到头来也是纸上谈兵,眼高手低。