Android实现风蓝记事本(5):修改记事功能
package com.example.notes; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.logging.SimpleFormatter; import android.app.Activity; import android.app.Dialog; import android.content.Intent; import android.content.SharedPreferences; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.os.Environment; import android.text.Selection; import android.text.Spannable; import android.util.Log; import android.view.KeyEvent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; public class Update extends Activity { private LinearLayout layout; //布局 private TextView update_title; //标题栏 private EditText update_content; //输入框 private ImageButton backBtn; //返回 private ImageButton deleteBtn; //删除 private ImageButton confirmBtn; //确认 private Dialog delDialog; //删除对话框 private Integer s_id; //记事ID private String title; //标题 private String content; //内容 private DatabaseManage dm = null;// 数据库管理对象 private Cursor cursor = null; private int background;//背景 private SharedPreferences sp;//存储数据 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.update); layout=(LinearLayout)findViewById(R.id.update); dm = new DatabaseManage(this);// 数据库操作对象 update_title=(TextView)findViewById(R.id.update_title); update_content=(EditText)findViewById(R.id.update_content); backBtn=(ImageButton)findViewById(R.id.back_btn); deleteBtn=(ImageButton)findViewById(R.id.delete_btn); confirmBtn=(ImageButton)findViewById(R.id.confirm_btn); background = R.drawable.skin_first; getBackground(); Intent intent=getIntent(); //恢复未保存数据 HashMap<String, Object> map=(HashMap<String, Object>) intent.getSerializableExtra("data"); title=(String) map.get("title"); content=(String) map.get("content"); s_id=(Integer)map.get("id"); update_title.setText(title); update_content.setText(content); ImageButton[] btns={backBtn,deleteBtn,confirmBtn}; for(ImageButton btn:btns) btn.setOnClickListener(click); } //设置背景 private void getBackground(){ sp=getSharedPreferences("backgrounds", 0); background=sp.getInt("background",background); layout.setBackgroundResource(background); } private OnClickListener click=new OnClickListener(){ @Override public void onClick(View v) { switch(v.getId()){ case R.id.back_btn: back(); break; case R.id.delete_btn: delete(); break; case R.id.confirm_btn: save(); break; } } }; private void save(){ String n_content=update_content.getText().toString().trim(); SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time=df.format(new Date()); if(n_content!=null){ dm.open(); int flag=dm.update(s_id, title, n_content, time); if(flag>0){ Toast.makeText(Update.this, R.string.note_saved, Toast.LENGTH_SHORT).show(); Intent intent=new Intent(Update.this,MainActivity.class); startActivity(intent); finish(); }else{ Toast.makeText(Update.this, R.string.note_null, Toast.LENGTH_SHORT).show();//弹出消息 } }else{ Toast.makeText(Update.this, R.string.note_null, Toast.LENGTH_SHORT).show(); } } private void delete(){ //删除记事 View deleteView = View.inflate(this, R.layout.deletenote, null); delDialog=new Dialog(this,R.style.dialog); delDialog.setContentView(deleteView); Button yesBtn=(Button)deleteView.findViewById(R.id.delete_yes); Button noBtn=(Button)deleteView.findViewById(R.id.delete_no); yesBtn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View view) { dm.open(); dm.delete(s_id); Toast.makeText(Update.this, R.string.note_deleted, Toast.LENGTH_SHORT).show(); delDialog.dismiss(); Intent intent=new Intent(Update.this,MainActivity.class); startActivity(intent); finish(); } }); noBtn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View view) { delDialog.dismiss(); } }); delDialog.show(); } private void back(){ Intent intent=new Intent(Update.this,MainActivity.class); startActivity(intent); finish(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. return true; } }
用到的布局: setContentView(R.layout.update)-->update.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/update" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/skin_first" android:orientation="vertical" 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=".MainActivity" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <ImageButton android:id="@+id/back_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/back_btn" android:background="@color/transparent" android:padding="8dp" android:src="@drawable/back" /> <TextView android:id="@+id/update_title" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:ellipsize="marquee" android:gravity="center" android:padding="8dp" android:singleLine="true" android:text="@string/update_note" android:textColor="@color/white" android:textSize="20sp" /> </LinearLayout> <EditText android:id="@+id/update_content" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:gravity="top|left" android:inputType="textMultiLine" android:padding="8dp" android:textSize="18sp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/transparent" android:orientation="horizontal" > <ImageButton android:id="@+id/delete_btn" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@color/transparent" android:contentDescription="@string/delete_btn" android:padding="8dp" android:src="@drawable/delete" /> <ImageButton android:id="@+id/confirm_btn" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@color/transparent" android:contentDescription="@string/confirm_btn" android:padding="8dp" android:src="@drawable/ok" /> </LinearLayout> </LinearLayout>