日記app安卓

        發(fā)布時間:2017-01-18 來源: 日記大全 點擊:

        日記app安卓篇一:基于android的日記本開發(fā)

        西南科技大學 課程設(shè)計報告

        課程名稱: 軟件設(shè)計基礎(chǔ)設(shè)計名稱: 基于android的日記本開發(fā)姓 名:學 號: 班 級: 通信1003班 指導(dǎo)教師:起止日期: 11.28——12.12

        西南科技大學信息工程學院制

        方 向 設(shè) 計 任 務(wù) 書

        學生班級: 通信1003班 學生姓名:學號:

        設(shè)計名稱:基于android的日記本開發(fā) 起止日期: 11.28——12.12指導(dǎo)教師:

        方 向 設(shè) 計 學 生 日 志

        2

        基于android的日記本開發(fā)

        一、 摘要(150-250字)

        伴隨著無線移動設(shè)備的迅速發(fā)展,手機的日益普及成為主流,在這一關(guān)鍵時期,Android系統(tǒng)的推出使手機發(fā)展進入了一個新的領(lǐng)域。世界上一些知名移動設(shè)備生產(chǎn)廠商對于Android智能機的開發(fā)熱情日益提高,Android系統(tǒng)的使用人群正在急速提升,Android應(yīng)用程序的多樣化使人們從手機中獲得更多樂趣,方便著人們的生活,使Android得到了社會越來越多的認同。本次設(shè)計主要描述了基于android開發(fā)一個簡易日記本的技術(shù)方法。

        關(guān)鍵字:Android; DbAdapter;Activity;diary 二、 設(shè)計目的和意義

        在中國,手機已經(jīng)成為人們?nèi)粘I畋夭豢缮俚囊徊糠,智能手機在高校人群中逐漸得到了普及,Android手機憑借其優(yōu)秀的系統(tǒng)性能以及良好的用戶體驗迅速得到了高校師生的青睞。在高校中,上課并不像高中時期有固定的教室和固定的時間,高校課程種類繁多,并且上課地點和時間不固定,一周內(nèi)極少會出現(xiàn)重復(fù)課程,所以要將課程表完整的記憶下來是一項很艱難的事情,很多同學不得不隨身攜帶一張課表來防止遺忘上課,但是還是不能完全避免該問題的發(fā)生,同時,作為一個當今高速發(fā)展的時代的成員,適應(yīng)這個社會是必不能少的,在各種社交場合中,記住一些必須的信息很重要,而它們往往又繁瑣又多,不易人為記住;谶@些問題,有必要設(shè)計一款方便小巧的簡易日記本程序,可以讓用戶自定義文件,記住上課時間和地點,從而避免遺忘上課的事情出現(xiàn),同時記住那些瑣碎卻有意義的小信息。而且,由于android系統(tǒng)市場的開放性和服務(wù)免費,它的應(yīng)用程序方面就成了一塊非常大的市場,。 三、 設(shè)計原理

        用戶在第一次進入程序時會看到到一個日記本的主界面,可進行日記文件的新建和刪除操作,按menu鍵可以選擇“幫助”和“退出”,程序主界面使用course_activity.java展示記錄,從Diary_activity, DiaryEditActivity類中可以新建和刪除日記信息,并在主界面中顯示。程序的配置信息主要存在DbAdapter中,該信息在數(shù)據(jù)顯示時讀取必要的配置信息,在按鈕監(jiān)聽函數(shù)中監(jiān)聽系統(tǒng)時間變化用來實現(xiàn)日記的創(chuàng)建功能。BaseColumns 是一個接口,里邊有兩個變量,一個是_ID="_id",一個是_COUNT="_ count" 。在Android當中,每一個數(shù)據(jù)庫表至少有一個字段,而且這個字段是_id。所以當我們構(gòu)造列名的輔助類時,直接實現(xiàn)BaseColumns ,這樣我們便默認地擁有了_id字段。在我們的日記本的數(shù)據(jù)表里,一共有4個字段,分別是:"id"、"title"、"body"、"created"。在Android中鼓勵使用內(nèi)部類,這樣不但使用方便,而且執(zhí)行效率也高是請求數(shù)據(jù)的類型,例如,在例子當中定義的類型是diary。當然這一部分可以是0個片段或者多個片段構(gòu)成,如果Content Provider只是暴露出了一種類型的數(shù)據(jù),那么這部分可以為空,但是如果暴露出了多種,尤其是包含子類的時候,就不能為空,"1"這部分是允許為空的,如果為空,表示請求全部數(shù)據(jù);如果不為空,表示請求特定ID的數(shù)據(jù)。DatabaseHelper是操作數(shù)據(jù)庫的輔助類,通過這個類我們可以生成數(shù)據(jù)庫,并且維護這個數(shù)據(jù)庫。 在DiaryContentProvider中,我們定義了一些變量和常量,其中這些常量主要是描述數(shù)據(jù)庫的信息。在刪除方法中,rowId = uri.getPathSegments().get(1)負責得到rowId的值。 getPathSegments()方法得到一個string的list, db.delete(DIARY_TABLE_NAME, DiaryColumns.

        日記app安卓

        _ID + "=" + rowId, null)是標準的SQLite刪除操作。update()是更新一條數(shù)據(jù)的方法, 使用ContentProvider時首先得到SQLiteDatabase,然后得到rowId,最后再調(diào)用db.update(DIARY_ TABLE_NAME, values, DiaryColumns._ID + "="+ rowId, null)語句執(zhí)行更新工作。

        3

        其主要流程圖如下:

        功能模塊:

        四、 詳細設(shè)計步驟

        簡易日記本應(yīng)該具有日記本的基本功能,比如新建,編輯,刪除,保存等,從這幾方面初步想到應(yīng)該有一個主類負責調(diào)用其他負責實現(xiàn)功能的類,這樣整個程序會比較清晰,通過流程分析和可行性分析之后我開始查閱資料編寫程序,本程序主要由六個類組成,它們分別為Dbadapter,help-activity,lookDiary,MainActivity,diary-activity和DiaryEditActivity ,

        1.其中MainActivity類為整個應(yīng)用的主Activity,其主要方法如下:

        ? onCreate:Activity主要重寫方法之一,實現(xiàn)程序初始化和界面展示; ? find_and_modify_button:尋找并點擊按鈕; ? onClick(View v):點擊當前所選按鈕;

        ? onCreateOptionMenu:實現(xiàn)Option菜單的創(chuàng)建;

        ? onOptionsItemSelected:實現(xiàn)菜單項的點擊事件響應(yīng);

        界面設(shè)計方面通過RelativeLayout實現(xiàn)布局,使用了TextView,ImageButton文件列表通

        4

        過ListView實現(xiàn)界面展示。該類通過繼承ListActivity類,用來顯示ListView中的數(shù)據(jù)并實現(xiàn)對ListView上ImageView控件點擊的統(tǒng)一響應(yīng)。 其主要代碼:public class MainActivity extends Activity

        {//菜單選項

        public static final int HELP = Menu.FIRST; public static final int EXIT = Menu.FIRST + 1; /** Called when the activity is first created. */

        public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);setTitle("小小日記本");find_and_modify_button();

        Toast.makeText(MainActivity.this,

        "歡迎使用簡易日記本", Toast.LENGTH_SHORT).show(); } private void find_and_modify_button() {// TODO Auto-generated method stubButton btn_diary = (Button) findViewById(R.id.btn_diary);btn_diary.setOnClickListener(diary_listener); } private Button.OnClickListener diary_listener = new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setClass(MainActivity.this, diary_activity.class); startActivity(intent);} } /** menu.findItem(EXIT_ID);找到特定的MenuItem* MenuItem.setIcon.可以設(shè)置menu按鈕的背景*/ public boolean onCreateOptionsMenu(Menu menu) {super.onCreateOptionsMenu(menu);menu.add(0, HELP, 0, "幫助").setIcon(R.drawable.helps);menu.add(0, EXIT, 0, "退出").setIcon(R.drawable.exit);return true; } public boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case HELP:Intent help_intent = new Intent(); help_intent.setClass(MainActivity.this, help_activity.class); startActivity(help_intent);break;case EXIT:

        5

        日記app安卓篇二:android日記本代碼

        一、實驗詳細代碼

        (1) 布局的代碼

        a. edit.xml代碼

        <?xml version="1.0" encoding="utf-8"?>

        <LinearLayout

        xmlns:android="http://schemas.android.com/apk/res/android"

        android:orientation="vertical"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent">

        <LinearLayout android:orientation="vertical"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content">

        <TextView android:layout_width="wrap_content"

        android:layout_height="wrap_content" android:text="主題"

        android:padding="2px" />

        <EditText android:id="@+id/title"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:layout_weight="1" />

        </LinearLayout>

        <TextView android:layout_width="wrap_content"

        android:layout_height="wrap_content" android:text="內(nèi)容" />

        <EditText android:id="@+id/body"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:layout_weight="1"

        android:scrollbars="vertical" android:gravity="top" />

        <Button android:id="@+id/confirm" android:text="確定"android:layout_width="wrap_content"

        android:layout_height="wrap_content" />

        </LinearLayout>

        b. list.xml的代碼

        <?xml version="1.0" encoding="utf-8"?>

        <LinearLayout

        xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content"

        android:layout_height="wrap_content">

        <ListView android:id="@+id/android:list"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content" />

        <TextView android:id="@+id/android:empty"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content" android:text="按下MENU寫日記!!" />

        </LinearLayout>

        c. row.xml的代碼

        <?xml version="1.0" encoding="utf-8"?>

        <RelativeLayout android:id="@+id/row"

        xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"

        android:layout_height="fill_parent">

        <TextView android:id="@+id/text1"

        android:layout_width="wrap_content"

        android:layout_height="30px"

        android:maxWidth="200dip"

        android:textSize="22sp"

        android:layout_marginTop="10dip"

        android:text="第1組第1項" />

        <TextView android:id="@+id/created"

        android:layout_width="wrap_content"

        android:layout_height="35px"

        android:layout_alignParentRight="true"

        android:layout_marginLeft="10dip"

        android:layout_marginTop="10dip"

        android:text="2011年10月30日" />

        </RelativeLayout>

        (2) 主要程序代碼

        a. DiaryBookDemo代碼

        public class DiaryBookDemo extends ListActivity {

        private static final int ACTIVITY_CREATE = 0;

        private static final int ACTIVITY_EDIT = 1;

        private static final int INSERT_ID = Menu.FIRST;

        private static final int DELETE_ID = Menu.FIRST + 1;

        private DiaryDbAdapter mDbHelper;

        private Cursor mDiaryCursor;

        @Override

        public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.list);

        mDbHelper = new DiaryDbAdapter(this);

        mDbHelper.open();

        renderListView();

        startService(new Intent(this, TimerServer.class)); }

        private void renderListView() {

        mDiaryCursor = mDbHelper.getAllNotes();

        startManagingCursor(mDiaryCursor);

        String[] from = new String[] { DiaryDbAdapter.KEY_TITLE, DiaryDbAdapter.KEY_CREATED };

        int[] to = new int[] { R.id.text1, R.id.created };

        SimpleCursorAdapter notes = new SimpleCursorAdapter(this, R.layout.row, mDiaryCursor, from, to);setListAdapter(notes);

        }

        @Override

        public boolean onCreateOptionsMenu(Menu menu) {

        super.onCreateOptionsMenu(menu);

        menu.add(0, INSERT_ID, 0, "插入");

        menu.add(0, DELETE_ID, 0, "刪除");

        return true;

        }

        @Override

        public boolean onMenuItemSelected(int featureId, MenuItem item) {

        switch (item.getItemId()) {

        case INSERT_ID:

        createDiary();

        return true;

        case DELETE_ID:

        mDbHelper.deleteDiary(getListView().getSelectedItemId());

        renderListView();

        return true;

        }

        return super.onMenuItemSelected(featureId, item); }

        private void createDiary() {

        Intent i = new Intent(this, ActivityDiaryEdit.class);startActivityForResult(i, ACTIVITY_CREATE);

        }

        @Override

        // 需要對position和id進行一個很好的區(qū)分

        // position指的是點擊的這個ViewItem在當前ListView中的位置 // 每一個和ViewItem綁定的數(shù)據(jù),肯定都有一個id,通過這個id可以找到那條數(shù)據(jù)。

        protected void onListItemClick(ListView l, View v, int position, long id) {

        super.onListItemClick(l, v, position, id);

        Cursor c = mDiaryCursor;

        c.moveToPosition(position);

        Intent i = new Intent(this, ActivityDiaryEdit.class);i.putExtra(DiaryDbAdapter.KEY_ROWID, id);

        i.putExtra(DiaryDbAdapter.KEY_TITLE, c.getString(c

        .getColumnIndexOrThrow(DiaryDbAdapter.KEY_TITLE)));

        i.putExtra(DiaryDbAdapter.KEY_BODY, c.getString(c

        .getColumnIndexOrThrow(DiaryDbAdapter.KEY_BODY)));

        startActivityForResult(i, ACTIVITY_EDIT);

        }

        @Override

        protected void onActivityResult(int requestCode, int resultCode,

        Intent intent) {

        super.onActivityResult(requestCode, resultCode, intent);renderListView();

        }

        }

        b. ActivityDiaryEdit的代碼

        public class ActivityDiaryEdit extends Activity {

        private EditText mTitleText;

        private EditText mBodyText;

        private Long mRowId;

        private DiaryDbAdapter mDbHelper;

        @Override

        protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

        mDbHelper = new DiaryDbAdapter(this);

        mDbHelper.open();

        setContentView(R.layout.edit);

        mTitleText = (EditText) findViewById(R.id.title);mBodyText = (EditText) findViewById(R.id.body);

        Button confirmButton = (Button)

        findViewById(R.id.confirm);

        mRowId = null;

        // 每一個intent都會帶一個Bundle型的extras數(shù)據(jù)。Bundle extras = getIntent().getExtras();

        if (extras != null) {

        String title =

        extras.getString(DiaryDbAdapter.KEY_TITLE);

        String body =

        extras.getString(DiaryDbAdapter.KEY_BODY);

        mRowId = extras.getLong(DiaryDbAdapter.KEY_ROWID);

        if (title != null) {

        mTitleText.setText(title);

        }

        if (body != null) {

        mBodyText.setText(body);

        }

        }

        confirmButton.setOnClickListener(new

        View.OnClickListener() {

        public void onClick(View view) {

        String title = mTitleText.getText().toString(); String body = mBodyText.getText().toString(); if (mRowId != null) {

        mDbHelper.updateDiary(mRowId, title, body); } else

        mDbHelper.createDiary(title, body); Intent mIntent = new Intent();

        setResult(RESULT_OK, mIntent);

        日記app安卓篇三:安卓開發(fā)實習_個人日志

        中軟國際 長沙ETC 實 習 實 訓(xùn) 日 志

        相關(guān)熱詞搜索:日記 app 日本appstore有安卓嗎 妹調(diào)日記安卓

        版權(quán)所有 蒲公英文摘 www.zuancaijixie.com
        91啦在线播放,特级一级全黄毛片免费,国产中文一区,亚洲国产一成人久久精品