Android项目开发技术总结

来源:互联网 发布:单片机电子琴设计原理 编辑:程序博客网 时间:2024/05/16 10:35
 

一 对话框(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 数据库相关,语句是否正确,数据库是否打开忘关闭或关闭了又要用。
  第三,要在项目开发中逐步提高重实践重思想,只是一味看书学习,到头来也是纸上谈兵,眼高手低。