打开记事本就能看到之前记录的信息:
package com.example.notes; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.app.Dialog; import android.content.DialogInterface; import android.content.DialogInterface.OnKeyListener; import android.content.SharedPreferences.Editor; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.database.Cursor; import android.os.Bundle; import android.os.Handler; import android.view.KeyEvent; import android.view.Menu; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnTouchListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemLongClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.GridView; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private LinearLayout layout;// 布局 private GridView menuGrid;// 菜单选项 private View menuView;// 菜单选项视图 private Dialog menuDialog;// 菜单对话框 private ImageButton menuBtn;// 弹出菜单 private Integer s_id;// 记事Id; private TextView titleTxt;// 标题 private Dialog delDialog;// 删除对话框 private ImageButton addBtn;// 添加 private ImageButton searchBtn;// 搜索 private ListView notesList;// 记事列表 private boolean sort;// 排序标识 private HashMap<Integer, Integer> idMap;// 存放记事ID列表 // 菜单选项 final int ACTION_SAY = 0;// 感悟 final int ACTION_HELP = 1;// 帮助 final int ACTION_ABOUT = 2;// 关于 final int ACTION_SORT=3;//排序 final int ACTION_SKIN=4;//背景 final int ACTION_EXIT = 5;// 退出 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.activity_main); idMap = new HashMap<Integer, Integer>();// 获取记事ID列表 layout = (LinearLayout) findViewById(R.id.main); titleTxt = (TextView) findViewById(R.id.title_main); addBtn = (ImageButton) findViewById(R.id.add_btn); menuBtn = (ImageButton) findViewById(R.id.menu_btn); searchBtn = (ImageButton) findViewById(R.id.search_btn); notesList = (ListView) findViewById(R.id.notes_lis); background=R.drawable.skin_first; getBackground(); dm = new DatabaseManage(this);// 数据库操作对象 sort = true; // 获取排序方式 // 添加按钮事件监听 ImageButton[] btns = { addBtn, searchBtn}; for (ImageButton btn : btns) btn.setOnClickListener(click); // 菜单按钮 menuBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub if (menuDialog == null) { menuDialog = new Dialog(MainActivity.this); menuDialog.show(); } else { menuDialog.show(); } } }); menuDialog = new Dialog(this, R.style.dialog); // 自定义菜单 menuView = View.inflate(this, R.layout.gridmenu, null); menuDialog.setContentView(menuView); menuDialog.setOnKeyListener(new OnKeyListener() {//dialog的setOnKeyListener监听key手机键 @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_MENU) dialog.dismiss(); return false; } }); menuGrid = (GridView) menuView.findViewById(R.id.grid); menuGrid.setAdapter(getMenuAdapter()); menuGrid.setOnItemClickListener(menuClick); // 显示记事 showNotes(sort); } //设置背景 private void getBackground(){ sp=getSharedPreferences("backgrounds", 0); background=sp.getInt("background",background); layout.setBackgroundResource(background); } // 菜单点击事件 private OnItemClickListener menuClick = new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub switch (position) { case ACTION_SAY: say(); break; case ACTION_HELP: help(); break; case ACTION_ABOUT: about(); break; case ACTION_SORT: sort = !sort; showNotes(sort); break; case ACTION_SKIN: Intent intent=new Intent(MainActivity.this,Skin.class); startActivity(intent); finish(); break; case ACTION_EXIT: exit(); break; default: break; } } //退出 private void exit() { finish(); } // 关于 private void about() { // TODO Auto-generated method stub Dialog aboutDialog = new Dialog(MainActivity.this, R.style.dialog); View aboutView = View.inflate(MainActivity.this, R.layout.about, null); aboutDialog.setContentView(aboutView); aboutDialog.show(); } //帮助 private void help() { // TODO Auto-generated method stub Intent intent = new Intent(MainActivity.this, Add.class); Bundle data = new Bundle(); data.putString("title", getResources().getString(R.string.help_title)); data.putString("content", getResources().getString(R.string.help_content)); intent.putExtras(data); startActivity(intent); finish(); } // 感悟 private void say() { // TODO Auto-generated method stub Intent intent = new Intent(MainActivity.this, Add.class); Bundle data = new Bundle(); data.putString("title", getResources() .getString(R.string.say_title)); data.putString("content", getResources().getString(R.string.say_content)); intent.putExtras(data); startActivity(intent); finish(); } }; // 获取菜单列表 private SimpleAdapter getMenuAdapter() { SimpleAdapter adapter = new SimpleAdapter(this, getMenu(), R.layout.menuitem, new String[] { "img", "txt" }, new int[] { R.id.item_img, R.id.item_txt }); return adapter; } // 获取菜单 private List<Map<String, Object>> getMenu() { int[] imgs = { R.drawable.say, R.drawable.help, R.drawable.about, R.drawable.sort,R.drawable.skin,R.drawable.exit }; int[] txts = { R.string.action_say, R.string.action_help, R.string.action_about,R.string.action_sort,R.string.action_skin, R.string.action_exit }; List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); for (int i = 0; i < imgs.length; i++) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("img", imgs[i]); map.put("txt", getResources().getString(txts[i])); list.add(map); } return list; } // 删除记事 private void deletes() { 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(MainActivity.this, R.string.note_deleted, Toast.LENGTH_SHORT).show(); delDialog.dismiss(); showNotes(sort); } }); noBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { delDialog.dismiss(); } }); delDialog.show(); } // 显示记事信息 private void showNotes(boolean model) { // TODO Auto-generated method stub SimpleAdapter adapter = new SimpleAdapter(MainActivity.this, getData(sort), R.layout.listitem, new String[] { "id", "title", "content", "time" }, new int[] { R.id.id, R.id.title, R.id.content, R.id.time}); notesList.setVisibility(View.VISIBLE); notesList.setAdapter(adapter); // 生成记事列表 notesList.setOnItemClickListener(listCheck);// 查看信息 notesList.setOnItemLongClickListener(longclick);// 长按事件 } // 点击视图的单个记事事件,查看信息 private OnItemClickListener listCheck = new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub ListView listView = (ListView) parent; HashMap<String, Object> map = (HashMap<String, Object>) listView .getItemAtPosition(position); Intent intent = new Intent(MainActivity.this, Update.class); intent.putExtra("data", map); startActivity(intent); finish(); } }; // 长按事件 public OnItemLongClickListener longclick = new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub s_id = idMap.get(position); deletes(); return false; } }; // 获取记事信息 private List<Map<String, Object>> getData(boolean sort_desc) { // TODO Auto-generated method stub List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); dm.open(); cursor = dm.selectAll(sort_desc); int pos = 0; while (cursor.moveToNext()) { int n_id = cursor.getInt(cursor.getColumnIndex("id")); idMap.put(pos, n_id); pos += 1; String n_title = cursor.getString(cursor.getColumnIndex("n_title")); String n_content = cursor.getString(cursor .getColumnIndex("n_content")); String n_time = cursor.getString(cursor.getColumnIndex("n_time")); HashMap<String, Object> map = new HashMap<String, Object>(); map.put("id", n_id); map.put("title", n_title); map.put("content", n_content); map.put("time", n_time); list.add(map); } cursor.close(); dm.close(); return list; } // 点击事件监听 private OnClickListener click = new OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.add_btn: add_btn(); break; case R.id.search_btn: search_btn(); break; } } private void search_btn() { // TODO Auto-generated method stub Intent intent = new Intent(MainActivity.this, Search.class); startActivity(intent); finish(); } private void add_btn() { // TODO Auto-generated method stub Intent intent = new Intent(MainActivity.this, Add.class); if (getIntent().hasExtra("title")) intent.putExtras(getIntent().getExtras()); startActivity(intent); finish(); } }; @Override public boolean onCreateOptionsMenu(Menu menu) { return true; } }
用到的布局:setContentView(R.layout.activity_main)-->activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main" 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:background="@color/transparent" android:orientation="horizontal" > <ImageButton android:id="@+id/menu_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@color/transparent" android:contentDescription="@string/menu" android:padding="8dp" android:src="@drawable/menu" /> <TextView android:id="@+id/title_main" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:padding="8dp" android:text="@string/app_name" android:textColor="@color/white" android:textSize="20sp" /> <ImageButton android:id="@+id/search_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@color/transparent" android:contentDescription="@string/search_btn" android:padding="8dp" android:src="@drawable/search" /> </LinearLayout> <FrameLayout android:id="@+id/notes_frm" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="@color/transparent" > <ListView android:id="@+id/notes_lis" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/gray" android:listSelector="@null" android:scrollbars="vertical" android:visibility="gone" android:divider="#00000000" android:dividerHeight="8dp" /> </FrameLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/transparent" android:orientation="horizontal" > <ImageButton android:id="@+id/add_btn" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" android:background="@color/transparent" android:contentDescription="@string/add_btn" android:padding="8dp" android:src="@drawable/add" /> </LinearLayout> </LinearLayout>
menuGrid = (GridView) menuView.findViewById(R.id.grid)-->gridmenu.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="match_parent" android:gravity="center" android:background="@color/transparent"> <GridView android:id="@+id/grid" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns="3" android:stretchMode="columnWidth" android:verticalSpacing="10dip" android:horizontalSpacing="2dip" android:gravity="center" android:background="@color/transparent" > </GridView> </LinearLayout>
menuDialog = new Dialog(this, R.style.dialog); // 自定义菜单
<style name="dialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <!-- 边框 --> <item name="android:windowIsFloating">true</item> <!-- 是否浮现在activity之上 --> <item name="android:windowNoTitle">true</item> <!-- 无标题 --> <item name="android:backgroundDimEnabled">true</item> <!-- 模糊 --> <!--背景颜色及透明程度--> <item name="android:windowBackground">@android:color/transparent</item> </style>
扫描二维码关注公众号,回复:
1099133 查看本文章