Android实现风蓝记事本(3):记事本启动类实现

打开记事本就能看到之前记录的信息:


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 查看本文章


我的座右铭:不会,我可以学;落后,我可以追赶;跌倒,我可以站起来;我一定行。


猜你喜欢

转载自blog.csdn.net/weixin_39220472/article/details/80383143