个人日记开发最终实现

来源:互联网 发布:佛教闭关可以有网络吗 编辑:程序博客网 时间:2024/05/22 02:15

 


一.设计思路

  首先需要将XML文件进行解析,获取所需要的信息。主要是利用数据存储SQLite。把数据存储到数据库中,然后对其进行增删改查操作,对应日记本中的添加日记、删除日记、修改日记。基本功能实现后,对界面进行进一步的美化。

1.使用SQLiteOpenHelper(抽象类)来完成数据库的创建;

2.定义Diary的实体类与数据库访问类DiaryDao类,完成添加、删除、更新、按id查找、查找所有日记及日记总数的方法;

3.编写单元测试类并搭建单元测试的环境;

4.创建多个AndroidActivity和布局文件分别来实现对日记列表的显示、添加日记、修改日记、删除日记功能的布局和功能的实现;

5最后,添加闪屏效果,对所有界面进行美化。

 

二.开发过程用到的技术

 

1.在进行数据存储访问时使用SQLite的存储方式。

2. Android UI布局技术

   主要运用控件:TabHost、EditText、Dialog、ImageView、ListView等

3.动画效果
   设置切入动画:setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.animation)),通过注册监听事件来实现动画效果;
4. Intent页面跳转技术

  Intent intent = new Intent(startActivity.this,endActivity.class);

5.项目闪屏效果

   运用AlphaAnimation类通过设定其Alpha值实现渐变的动画效果,通过设定播

放时间控制动画的播放,通过注册事件监听控制当动画播放完毕自动跳转到主界

面。

6.ListView的判空效果

当ListView中为空时通过图片提示,提示效果明显 。

在布局文件中要手动添加<ListView android:id=”@+id/listview”>

<ImageView android:id=”@+id/empty”>

在Activity中

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

ImageViewempty=(ImageView)findViewById(R.id.empty);

Listview.setEmptyView(empty);

 


三.各个界面布局的实现

 

1.闪屏界面的布局:


 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".WelcomActivity"     android:background="@drawable/welcomm" >    <ProgressBar        android:id="@+id/progressBar1"        style="?android:attr/progressBarStyleLarge"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/welcomimageView"        android:layout_centerHorizontal="true" />    <ImageView        android:id="@+id/welcomimageView"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentTop="true"        android:layout_centerHorizontal="true"        android:layout_marginTop="82dp"        android:src="@drawable/baby" />    <TextView        android:id="@+id/welcomtext"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignTop="@+id/welcomimageView"        android:layout_marginTop="21dp"        android:text="生活每天 都是新的!"        android:textAppearance="?android:attr/textAppearanceMedium"        android:textColor="#F9F900" /></RelativeLayout>


 

2.登陆界面的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@drawable/djhfj"    android:orientation="vertical"    tools:context=".LoginActivity" >    <TextView        android:id="@+id/denglu"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:background="@drawable/fl_top_title_bg"        android:gravity="center"        android:text="登陆"        android:textColor="#ffffff"        android:textSize="20sp" />    <EditText        android:id="@+id/pasEdite"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:hint="欢迎使用,请输入密码!"        android:password="true" />    <Button        android:id="@+id/denglu_button"        android:layout_width="80dp"        android:layout_height="80dp"        android:layout_gravity="center"        android:background="@drawable/girl"        android:text="登陆" />   </LinearLayout>


 


3.日记列表的界面

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@drawable/login"    android:orientation="vertical"    tools:context=".MainActivity" >    <TextView        android:id="@+id/biaoti"        android:layout_width="fill_parent"        android:layout_height="40dip"        android:background="#8EE5EE"        android:gravity="center"        android:text="我的生活记录"        android:textSize="20dip" />    <ListView        android:id="@+id/listview"        android:layout_width="fill_parent"        android:layout_height="fill_parent" >    </ListView>    <ImageView        android:id="@+id/empty"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="@drawable/warnnn"         android:layout_gravity="center"/></LinearLayout>


 


4.日记编辑界面

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:background="@drawable/fgkljg"    tools:context=".ContentRActivity" >     <TextView             android:id="@+id/biaoti"            android:layout_height="40dip"            android:layout_width="fill_parent"            android:gravity="center"            android:background="#8EE5EE"            android:textSize="20dip"            android:text="我的生活记录"/>    <LinearLayout         android:orientation="horizontal"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center">               <TextView        android:id="@+id/Atitle"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="标题"        android:textSize="20sp" />        <EditText            android:id="@+id/etitle"             android:layout_height="wrap_content"            android:layout_width="150dp"            android:inputType="text"/>    </LinearLayout>     <LinearLayout     android:orientation="horizontal"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_gravity="center">    <TextView        android:id="@+id/content"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="内容"        android:textSize="20sp" />      <EditText            android:id="@+id/econtent"             android:layout_height="100dip"            android:layout_width="150dp"            android:inputType="text"/>    </LinearLayout>          <LinearLayout         android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:orientation="horizontal"        android:gravity="center"        >        <Button android:id="@+id/editbutton"            android:layout_height="wrap_content"            android:layout_width="wrap_content"            android:text="更新"/>         <Button android:id="@+id/canclebutton"            android:layout_height="wrap_content"            android:layout_width="wrap_content"            android:text="删除"/>           <Button android:id="@+id/returnbutton"            android:layout_height="wrap_content"            android:layout_width="wrap_content"            android:text="返回"/>    </LinearLayout>           </LinearLayout>


 


四.具体实现

 

1.日记的实体类

package org.sql.entity;public class Diary { //最好与数据库中字段值一一对应 private Integer id; private String content; private String title; private String createtime;  public Diary() {  super(); }  public Diary(String content, String title, String createtime) {  super();  this.content = content;  this.title = title;  this.createtime = createtime; }  public Integer getId() {  return id; } public void setId(Integer id) {  this.id = id; } public String getContent() {  return content; } public void setContent(String content) {  this.content = content; } public String getTitle() {  return title; } public void setTitle(String title) {  this.title = title; } public String getCreatetime() {  return createtime; } public void setCreatetime(String createtime) {  this.createtime = createtime; } public String toString(){  return "Disry[title:"+title+",content:"+content+",createtime:"+createtime+"]";   } }



 2.DbHelper类

package org.sql.db;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class DbHelper extends SQLiteOpenHelper { private static final String sql_NAME="mydb"; private static final int sql_Version=1; public DbHelper(Context context) {  super(context, sql_NAME, null, sql_Version);  // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) {  String sql = "create table diary(id integer primary key autoincrement,title varchar(20),content varchar(1000),createtime)";  db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  // TODO Auto-generated method stub }}



 3.对数据库中的数据实现增删改查


 

package org.sql.Dao;import java.util.ArrayList;import java.util.List;import org.sql.db.DbHelper;import org.sql.entity.Diary;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;public class DiaryDao { private Integer a; private DbHelper dbhelper; public DiaryDao(Context context){  dbhelper=new DbHelper(context);   } public ArrayList<Integer> selectid(){  ArrayList<Integer> ids=new ArrayList<Integer>();  SQLiteDatabase db=dbhelper.getWritableDatabase();  String sql="select id from diary";  db.execSQL(sql);  Cursor cursor=db.rawQuery(sql, null);  while(cursor.moveToNext()){   a++;   ids.add(a);     }  return ids; }  //插入数据 public void save(Diary diary){  SQLiteDatabase db=dbhelper.getWritableDatabase();  String sql="insert into diary(title,content,createtime)values(?,?,?)";  db.execSQL(sql, new String[]{diary.getTitle(),diary.getContent(),diary.getCreatetime()});     } //查找数据 public List<Diary> getAllDiaries(){  List<Diary> diaries=new ArrayList<Diary>();  SQLiteDatabase db=dbhelper.getReadableDatabase();  String sql="select * from diary";  Cursor cursor=db.rawQuery(sql, null);  while(cursor.moveToNext()){   //Integer id=cursor.getInt(cursor.getColumnIndex("id"));   String title=cursor.getString(cursor.getColumnIndex("title"));   String content=cursor.getString(cursor.getColumnIndex("content"));   String createtime=cursor.getString(cursor.getColumnIndex("createtime"));   Diary diary=new Diary(content, title, createtime);   diaries.add(diary);  }  return diaries;   }   //删除数据  public void deleteDiary(Integer id){   SQLiteDatabase db=dbhelper.getWritableDatabase();   String sql="delete from diary where id=?";      db.execSQL(sql,new Object[]{id});     }    //更新数据  public void updateDiary(Diary diary){   SQLiteDatabase db=dbhelper.getWritableDatabase();   String sql="update diary set title=?,content=?,createtime=? where id=?";         db.execSQL(sql, new Object[]{diary.getTitle(),diary.getContent(),diary.getCreatetime(),diary.getId()});  }    public long count() {   long count=0;   SQLiteDatabase db=dbhelper.getReadableDatabase();   Cursor cursor=db.rawQuery("select count(*) from diary ",null);   cursor.moveToFirst();   count=cursor.getLong(0);   return count; }    //根据id查询数据  public Diary find(Integer id){   Diary diary = null;   SQLiteDatabase db=dbhelper.getReadableDatabase();   String sql="select * from diary where id=?";   Cursor cursor=db.rawQuery(sql, new String[]{id.toString()});     if(cursor.moveToFirst()){      Integer Id=cursor.getInt(cursor.getColumnIndex("id"));    String title=cursor.getString(cursor.getColumnIndex("title"));    String content=cursor.getString(cursor.getColumnIndex("content"));    String createtime=cursor.getString(cursor.getColumnIndex("createtime"));    diary=new Diary(content, title, createtime);    diary.setId(Id);   }   return diary;  }  public Diary findtitle(String title){   Diary diary = null;   SQLiteDatabase db=dbhelper.getReadableDatabase();   String sql="select * from diary where title=?";   Cursor cursor=db.rawQuery(sql, new String[]{title});     if(cursor.moveToFirst()){      Integer id=cursor.getInt(cursor.getColumnIndex("id"));    String Title=cursor.getString(cursor.getColumnIndex("title"));    String content=cursor.getString(cursor.getColumnIndex("content"));    String createtime=cursor.getString(cursor.getColumnIndex("createtime"));    diary=new Diary(content, Title, createtime);    diary.setId(id);   }   return diary;  }}



 4.进行单元测试的方法


 

package org.sql.sqlTest;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import org.sql.Dao.DiaryDao;import org.sql.entity.Diary;import android.test.AndroidTestCase;public class DiaryDaoTest extends AndroidTestCase { //插入 public void testSave(){  DiaryDao diaryDao=new DiaryDao(getContext());    Diary diary=new Diary("我是破坏王", "配音谢娜", getcurrentTime());  diaryDao.save(diary);  diary=new Diary("迪斯尼乐园米老鼠与唐老鸭", "最爱", getcurrentTime());  diaryDao.save(diary);    diary=new Diary("致我们终将逝去的青春","《致青春》,导演赵薇",getcurrentTime());    diaryDao.save(diary);      diary=new Diary("5.26,是他们演唱的最后一场《MAMA》。虽说等新专等了很久,但还是忘不了那首曾经陪我们一年多的歌。到时候会不会有很多人忘记这首歌,原因是听了很久。我不敢保证。或许多年以后,许多行星饭就只听新歌,忘...... ", "鹿晗", getcurrentTime());    diaryDao.save(diary); } //查找 public void testgetAllDiaries(){  DiaryDao diaryDao=new DiaryDao(getContext());  List<Diary> diaries=diaryDao.getAllDiaries();  System.out.println(diaries); } public void testdelate(){  DiaryDao diaryDao=new DiaryDao(getContext());  diaryDao.deleteDiary(2); }  public String getcurrentTime(){  SimpleDateFormat format= new SimpleDateFormat("yyyy年MM月dd日 hh:MM:ss");  return format.format(new Date()); } //更新 public void testUpdate(){  DiaryDao diaryDao=new DiaryDao(getContext());     Diary diary=new Diary("我是米你", "迪斯尼乐园", getcurrentTime());     diary.setId(1);     diaryDao.updateDiary(diary); } //根据id查找数据测试 public void testFind(){  DiaryDao diaryDao=new DiaryDao(getContext());  Diary diary=diaryDao.find(1);  System.out.println(diary.getId());   } public void testFindtitle(){  DiaryDao diaryDao=new DiaryDao(getContext());  Diary diary=diaryDao.findtitle("配音谢娜");  System.out.println(diary.getId());   }}



 5.各个页面中具体功能的实现

 

MainActivity页面:package com.example.sqlist;import org.sql.Dao.DiaryDao;import android.os.Bundle;import android.app.TabActivity;import android.content.Intent;import android.view.Menu;import android.view.MenuItem;import android.view.Window;import android.widget.TabHost;public class MainActivity extends TabActivity { private TabHost tabhost; DiaryDao diaryService ; private Intent intent; @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  getWindow().requestFeature(Window.FEATURE_CUSTOM_TITLE);  setContentView(R.layout.activity_main);  tabhost=getTabHost();  tabhost.addTab(buildTabSpec("TAB1", R.string.mydiarylist,    R.drawable.kieert, new Intent(MainActivity.this,      DiarylistActivity.class)));  tabhost.addTab(buildTabSpec("TAB2", R.string.writemydiary,    R.drawable.kitty, new Intent(MainActivity.this,      WriteDiaryActivity.class)));  tabhost.addTab(buildTabSpec("TAB3", R.string.finddiary,    R.drawable.kittyy, new Intent(MainActivity.this,      FindDiaryActivity.class)));  tabhost.addTab(buildTabSpec("TAB4", R.string.exit,    R.drawable.kuii, new Intent(MainActivity.this,      ExitActivity.class)));    } private TabHost.TabSpec buildTabSpec(String tag, int realLable,   int realIcon, Intent content) {  return this.tabhost    .newTabSpec(tag)    .setIndicator(getString(realLable),      getResources().getDrawable(realIcon))    .setContent(content); } @Override public boolean onCreateOptionsMenu(Menu menu) {  // Inflate the menu; this adds items to the action bar if it is present.  getMenuInflater().inflate(R.menu.main, menu);    return true; } @Override public boolean onOptionsItemSelected(MenuItem item) {  switch (item.getItemId()) {  case R.id.mydiarylist:    intent=new Intent();   intent.setClass(MainActivity.this, DiarylistActivity.class);   startActivity(intent);   finish();   break;  case R.id.writediary:      intent=new Intent();   intent.setClass(MainActivity.this, WriteDiaryActivity.class);   startActivity(intent);   finish();   break;  default:   break;  }  // TODO Auto-generated method stub  return super.onOptionsItemSelected(item); }} DiarylistActivity页面:package com.example.sqlist;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.sql.Dao.DiaryDao;import org.sql.entity.Diary;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.AdapterView;import android.widget.ImageView;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.TextView;import android.widget.Toast;public class DiarylistActivity extends Activity { private ListView listview; private ImageView empty; DiaryDao diarydao; private Animation animation; private TextView biaoti; Diary diary; int ID; // List<Map<String,Object>> data; // Diary diary; // int ID; @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_diarylist);  prepare();  animation = AnimationUtils.loadAnimation(DiarylistActivity.this,    R.anim.animation);  biaoti.setAnimation(animation);  // 提供适配器  // 点击列表的事件处理  listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {   @SuppressWarnings("unchecked")   @Override   public void onItemClick(AdapterView<?> parent, View view,     int position, long id) {    DiaryDao diaryDao = new DiaryDao(DiarylistActivity.this);    listview = (ListView) parent;    @SuppressWarnings("unchecked")    Map<String, Object> item = (Map<String, Object>) listview      .getItemAtPosition(position);    String title = (String) item.get("title");    // System.out.println(title);    diary = diaryDao.findtitle(title);    intent();       }  }); } public void intent(){  Intent intent = new Intent();  intent.setClass(DiarylistActivity.this, ContentRActivity.class);  Bundle bundle = new Bundle();  bundle.putInt("id", diary.getId());  intent.putExtras(bundle);  startActivity(intent);  finish(); } public void prepare() {  // 查询数据  diarydao = new DiaryDao(this);  List<Diary> diaries = diarydao.getAllDiaries();  // 查找控件  empty = (ImageView) findViewById(R.id.empty);  listview = (ListView) findViewById(R.id.listview);  biaoti = (TextView) findViewById(R.id.biaoti);  listview.setEmptyView(empty);  List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();  for (Diary diary : diaries) {   Map<String, Object> map = new HashMap<String, Object>();   map.put("title", diary.getTitle());   map.put("content", diary.getContent());   map.put("create", diary.getCreatetime());   data.add(map);   SimpleAdapter adapter = new SimpleAdapter(this, data,     R.layout.items, new String[] { "title", "create" },     new int[] { R.id.title, R.id.create });   listview.setAdapter(adapter);  } } @Override public boolean onCreateOptionsMenu(Menu menu) {  // Inflate the menu; this adds items to the action bar if it is present.  getMenuInflater().inflate(R.menu.diarylist, menu);  return true; }} ContentRActivity页面:package com.example.sqlist;import java.text.SimpleDateFormat;import java.util.Date;import org.sql.Dao.DiaryDao;import org.sql.Data.CurrentData;import org.sql.entity.Diary;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.content.ContentValues;import android.content.DialogInterface;import android.content.Intent;import android.graphics.Color;import android.view.Menu;import android.view.View;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.view.animation.Animation.AnimationListener;import android.widget.AdapterView;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.TextView;import android.widget.Toast;public class ContentRActivity extends Activity {  private EditText Etitle, Econtent; private Button editbutton, delatebutton,returnbutton; private String title; private String content; private String createtime; private Animation animation; private TextView biaoti; DiaryDao diarydao; Diary diary ; private int id; Intent intent; @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_content_r);  Etitle = (EditText) findViewById(R.id.etitle);  Econtent = (EditText) findViewById(R.id.econtent);  editbutton = (Button) findViewById(R.id.editbutton);  delatebutton = (Button) findViewById(R.id.canclebutton);  returnbutton = (Button) findViewById(R.id.returnbutton);        biaoti=(TextView) findViewById(R.id.biaoti);     animation=AnimationUtils.loadAnimation(ContentRActivity.this, R.anim.animation);     biaoti.setAnimation(animation);  intent = getIntent();  Bundle bundle = intent.getExtras();  id = bundle.getInt("id");     diarydao = new DiaryDao(this);  diary = diarydao.find(id);  title = diary.getTitle();  content = diary.getContent();  Etitle.setText(title);  Econtent.setText(content);  editbutton.setOnClickListener(new Button.OnClickListener() {      @Override   public void onClick(View v) {    //DiaryDao diaryDao=new DiaryDao(ContentRActivity.this);    v.startAnimation(animation);    animation.setAnimationListener(new AnimationListener() {          @Override     public void onAnimationStart(Animation animation) {      // TODO Auto-generated method stub           }          @Override     public void onAnimationRepeat(Animation animation) {      // TODO Auto-generated method stub           }          @Override     public void onAnimationEnd(Animation animation) {      // TODO Auto-generated method stub      //DiaryDao diaryDao=new DiaryDao(ContentRActivity.this);      title=Etitle.getText().toString();      content=Econtent.getText().toString();      Diary diary=new Diary(content,title,CurrentData.getCurrentTime());      diary.setId(id);      diarydao.updateDiary(diary);      intent=new Intent();      intent.setClass(ContentRActivity.this, DiarylistActivity.class);      Bundle bundle=new Bundle();      bundle.putInt("id", id);      intent.putExtras(bundle);      startActivity(intent);                 }    });    // TODO Auto-generated method stub       }  });  returnbutton.setOnClickListener(new Button.OnClickListener() {      @Override   public void onClick(View v) {    // TODO Auto-generated method stub    v.startAnimation(animation);    animation.setAnimationListener(new AnimationListener() {          @Override     public void onAnimationStart(Animation animation) {      // TODO Auto-generated method stub           }          @Override     public void onAnimationRepeat(Animation animation) {      // TODO Auto-generated method stub           }          @Override     public void onAnimationEnd(Animation animation) {      // TODO Auto-generated method stub      intent=new Intent();      intent.setClass(ContentRActivity.this, MainActivity.class);      startActivity(intent);      finish();     }    });       }  });  delatebutton.setOnClickListener(new Button.OnClickListener() {      @Override   public void onClick(View v) {    // TODO Auto-generated method stub    v.startAnimation(animation);    animation.setAnimationListener(new AnimationListener() {          @Override     public void onAnimationStart(Animation animation) {      // TODO Auto-generated method stub           }          @Override     public void onAnimationRepeat(Animation animation) {      // TODO Auto-generated method stub           }          @Override     public void onAnimationEnd(Animation animation) {      // TODO Auto-generated method stub      dialog();     }    });           }  });   }  public void dialog(){  final AlertDialog.Builder dialog=new AlertDialog.Builder(this);  dialog.setTitle("提示").setMessage("确定要删除该篇日记?").setPositiveButton("确定", new DialogInterface.OnClickListener() {      @Override   public void onClick(DialogInterface dialog, int which) {    // TODO Auto-generated method stub    DiaryDao diaryDao=new DiaryDao(ContentRActivity.this);     diarydao.deleteDiary(id);              intent=new Intent();     intent.setClass(ContentRActivity.this, DiarylistActivity.class);     startActivity(intent);     Toast.makeText(ContentRActivity.this, "删除成功", Toast.LENGTH_LONG).show();   }  }).setNegativeButton("取消", new DialogInterface.OnClickListener() {      @Override   public void onClick(DialogInterface dialog, int which) {    // TODO Auto-generated method stub       }  });  AlertDialog dialog_alert=dialog.create();  dialog_alert.show(); }   @Override public boolean onCreateOptionsMenu(Menu menu) {  // Inflate the menu; this adds items to the action bar if it is present.  getMenuInflater().inflate(R.menu.content, menu);  return true; }} package com.example.sqlist;import java.text.SimpleDateFormat;import java.util.Date;import org.sql.Dao.DiaryDao;import org.sql.Data.CurrentData;import org.sql.entity.Diary;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.content.ContentValues;import android.content.DialogInterface;import android.content.Intent;import android.graphics.Color;import android.view.Menu;import android.view.View;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.view.animation.Animation.AnimationListener;import android.widget.AdapterView;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.TextView;import android.widget.Toast;public class ContentRActivity extends Activity {  private EditText Etitle, Econtent; private Button editbutton, delatebutton,returnbutton; private String title; private String content; private String createtime; private Animation animation; private TextView biaoti; DiaryDao diarydao; Diary diary ; private int id; Intent intent; @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_content_r);  Etitle = (EditText) findViewById(R.id.etitle);  Econtent = (EditText) findViewById(R.id.econtent);  editbutton = (Button) findViewById(R.id.editbutton);  delatebutton = (Button) findViewById(R.id.canclebutton);  returnbutton = (Button) findViewById(R.id.returnbutton);        biaoti=(TextView) findViewById(R.id.biaoti);     animation=AnimationUtils.loadAnimation(ContentRActivity.this, R.anim.animation);     biaoti.setAnimation(animation);  intent = getIntent();  Bundle bundle = intent.getExtras();  id = bundle.getInt("id");     diarydao = new DiaryDao(this);  diary = diarydao.find(id);  title = diary.getTitle();  content = diary.getContent();  Etitle.setText(title);  Econtent.setText(content);  editbutton.setOnClickListener(new Button.OnClickListener() {      @Override   public void onClick(View v) {    //DiaryDao diaryDao=new DiaryDao(ContentRActivity.this);    v.startAnimation(animation);    animation.setAnimationListener(new AnimationListener() {          @Override     public void onAnimationStart(Animation animation) {      // TODO Auto-generated method stub           }          @Override     public void onAnimationRepeat(Animation animation) {      // TODO Auto-generated method stub           }          @Override     public void onAnimationEnd(Animation animation) {      // TODO Auto-generated method stub      //DiaryDao diaryDao=new DiaryDao(ContentRActivity.this);      title=Etitle.getText().toString();      content=Econtent.getText().toString();      Diary diary=new Diary(content,title,CurrentData.getCurrentTime());      diary.setId(id);      diarydao.updateDiary(diary);      intent=new Intent();      intent.setClass(ContentRActivity.this, DiarylistActivity.class);      Bundle bundle=new Bundle();      bundle.putInt("id", id);      intent.putExtras(bundle);      startActivity(intent);                 }    });    // TODO Auto-generated method stub       }  });  returnbutton.setOnClickListener(new Button.OnClickListener() {      @Override   public void onClick(View v) {    // TODO Auto-generated method stub    v.startAnimation(animation);    animation.setAnimationListener(new AnimationListener() {          @Override     public void onAnimationStart(Animation animation) {      // TODO Auto-generated method stub           }          @Override     public void onAnimationRepeat(Animation animation) {      // TODO Auto-generated method stub           }          @Override     public void onAnimationEnd(Animation animation) {      // TODO Auto-generated method stub      intent=new Intent();      intent.setClass(ContentRActivity.this, MainActivity.class);      startActivity(intent);      finish();     }    });       }  });  delatebutton.setOnClickListener(new Button.OnClickListener() {      @Override   public void onClick(View v) {    // TODO Auto-generated method stub    v.startAnimation(animation);    animation.setAnimationListener(new AnimationListener() {          @Override     public void onAnimationStart(Animation animation) {      // TODO Auto-generated method stub           }          @Override     public void onAnimationRepeat(Animation animation) {      // TODO Auto-generated method stub           }          @Override     public void onAnimationEnd(Animation animation) {      // TODO Auto-generated method stub      dialog();     }    });           }  });   }  public void dialog(){  final AlertDialog.Builder dialog=new AlertDialog.Builder(this);  dialog.setTitle("提示").setMessage("确定要删除该篇日记?").setPositiveButton("确定", new DialogInterface.OnClickListener() {      @Override   public void onClick(DialogInterface dialog, int which) {    // TODO Auto-generated method stub    DiaryDao diaryDao=new DiaryDao(ContentRActivity.this);     diarydao.deleteDiary(id);              intent=new Intent();     intent.setClass(ContentRActivity.this, DiarylistActivity.class);     startActivity(intent);     Toast.makeText(ContentRActivity.this, "删除成功", Toast.LENGTH_LONG).show();   }  }).setNegativeButton("取消", new DialogInterface.OnClickListener() {      @Override   public void onClick(DialogInterface dialog, int which) {    // TODO Auto-generated method stub       }  });  AlertDialog dialog_alert=dialog.create();  dialog_alert.show(); }   @Override public boolean onCreateOptionsMenu(Menu menu) {  // Inflate the menu; this adds items to the action bar if it is present.  getMenuInflater().inflate(R.menu.content, menu);  return true; }}


 五.运行效果

 

 

 


 

原创粉丝点击