1.系統需求分析
1.1 系統功能及框圖
該項目實現了備忘錄的創建,修改,刪除,查詢,對備忘錄數目的統計和軟件的說明。
1.2 系統需求
功能 說明
備忘錄的創建 主鍵自動生成,將控件中的數據對Word字段進行賦值
備忘錄的修改 將控件中的數據對Word字段進行賦值,查詢條件是與原先的Word字段相等
備忘錄的查詢 對Word字段進行查詢,查詢條件是與控件中的數據相等
備忘錄的刪除 按照Word字段進行刪除,查詢條件是與控件中的數據相等
備忘錄數目的統計 通過SharedPrefenrences來存儲和讀取數據
軟件的說明 進一步的描述
1.3 該項目涉及到的技術點
界面控件:TextView,EditText,Button,ImageButton,ListView,View
佈局:線性佈局
事件:監聽事件
數據存儲:SharedPrefenrences,SQLite存儲
Activity和Intent
2.數據存儲設計
2.1 SharedPrefenrences/文件存儲/SQLite存儲介紹
SharedPrefenrences :
SharedPreferences是Android平臺上一個輕量級的存儲類,用來保存應用的一些常用配置,比如Activity狀態,Activity暫停時,將此activity的狀態保存到SharedPereferences中;當Activity重載,系統回調方法onSaveInstanceState時,再從SharedPreferences中將值取出。
SharedPreferences提供了java常規的Long、Int、String等類型數據的保存接口。 [SharedPreferences類似過去Windows系統上的ini配置文件,但是它分爲多種權限,可以全局共享訪問。
提示最終是以xml方式來保存,整體效率來看不是特別的高,對於常規的輕量級而言比SQLite要好不少,如果真的存儲量不大可以考慮自己定義文件格式。xml處理時Dalvik會通過自帶底層的本地XML Parser解析,比如XMLpull方式,這樣對於內存資源佔用比較好。
文件存儲
文件存儲是Android中最基本的一種數據存儲方式,它不對存儲的內容進行任何的格式化處理,所有數據都是原封不動的保存到文件當中,因而它比較適合用於存儲一些簡單的文本數據或者二進制數據。如果你想使用文件存儲的方式來保存一些較爲複雜的文本數據,就需要定義一套自己的格式規範以方便將數據從文件中重新解析出來。
Context類中提供了一個openFileOutput()方法,可以用於將數據存儲到指定的文件中。這個方法有兩個參數,第一個參數是文件名,在文件創建的時候使用的就是這個名稱,(文件的位置是默認 存儲到/data/data/packagename/files/目錄下的)第二個參數就是文件的操作模式,主要有兩種模式可選:MODE_PRIVATE和 MODE_APPEND,其中MODE_PRIVATE是默認的操作模式,表示當指定文件已存在,所寫入的內容將會覆蓋源文件中的內容,而MODE_APPEND則表示如果該文件已存在,就往文件裏追加內容,不存在就創建新文件
SQLite存儲
①SQLite是一個輕量級的關係型數據庫,運算速度快,佔用資源少,很適合在移動設備上使用, 不僅支持標準SQL語法,還遵循ACID(數據庫事務)原則,無需賬號,使用起來非常方便!
②但是在很多情況下, 文件並不一定是有效的,如多線程併發訪問是相關的;app要處理可能變化的複雜數據結構等等! 比如銀行的存錢與取錢!使用前兩者就會顯得很無力或者繁瑣,數據庫的出現可以解決這種問題, 而Android又給我們提供了這樣一個輕量級的SQLite,爲何不用?
③SQLite支持五種數據類型:NULL,INTEGER,REAL(浮點數),TEXT(字符串文本)和BLOB(二進制對象) 雖然只有五種,但是對於varchar,char等其他數據類型都是可以保存的;因爲SQLite有個最大的特點:你可以各種數據類型的數據保存到任何字段中而不用關心字段聲明的數據類型是什麼,比如你 可以在Integer類型的字段中存放字符串,當然除了聲明爲主鍵INTEGER PRIMARY KEY的字段只能夠存儲64位整數! 另外, SQLite 在解析CREATE TABLE 語句時, 會忽略 CREATE TABLE 語句中跟在字段名後面的數據類型信息如下面語句會忽略 name字段的類型信息:CREATE TABLE person (personid integer primary key autoincrement, name varchar(20))
2.2數據表結構
給出使用的數據庫的邏輯結構,需要說明各字段屬性及含義
Id:作爲主鍵,自帶生成
Word:進行存儲備忘錄的信息
SharedPrefenrences代碼
```java
SharedPreferences sharedP=getSharedPreferences("SaveTable",MODE_PRIVATE);
SharedPreferences.Editor editor=sharedP.edit();
int num=sharedP.getInt("number", 0);
num++;
editor.putInt("number", num);
editor.commit();
數據庫封裝代碼:
```java
package com.example.coursedesign;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class DBOpenHelper extends SQLiteOpenHelper {
final String CREATE_TABLE_SQL="create table myTable(_id integer primary key autoincrement,word text)";
public static final String name = "myDb";
public static final String table_name = "myTable";
public DBOpenHelper( Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_SQL);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.i("生活小助手","--版本更新"+oldVersion+"-->"+newVersion);
}
public List<String> readAll () {
List<String> allCommodities = new ArrayList<String>();
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from myTable order by _id",null);
if(cursor.moveToFirst()) {
do {
String title = cursor.getString(cursor.getColumnIndex("word"));
allCommodities.add(title);
}while (cursor.moveToNext());
}
cursor.close();
return allCommodities;
}
public boolean addMyCollection(String s) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("word",s);
db.insert(table_name,null,values);
values.clear();
return true;
}
public void delete(String word) {
SQLiteDatabase db = this.getWritableDatabase();
if(db.isOpen()) {
db.delete(table_name,"word=?",new String[]{word+""});
db.close();
}
}
public boolean update (String word,String wordP) {
SQLiteDatabase db = this.getWritableDatabase();
String sql = "update myTable set word=? where word=?";
String[] obj = new String[]{word,wordP};
db.execSQL(sql,obj);
return true;
}
}
3.具體編碼及截圖
3.1 主界面
通過listView來顯示所有的備忘錄,界面含有主頁,刷新,添加,個人中心的功能。
界面代碼:
<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/blue"
tools:context="com.example.coursedesign.MainActivity" >
<ListView
android:id="@+id/main_list"
android:layout_width="match_parent"
android:layout_height="370dp"
android:layout_marginTop="4dp"
android:layout_weight="1.19" />
<View
android:id="@+id/view1"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="50dp"
android:background="@drawable/green" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/ib_home_page"
android:layout_width="58dp"
android:layout_height="55dp"
android:src="@drawable/home" />
<View
android:id="@+id/view2"
android:layout_width="2dp"
android:layout_height="55dp"
android:background="@drawable/green" />
<ImageButton
android:id="@+id/ib_add_product"
android:layout_width="58dp"
android:layout_height="55dp"
android:src="@drawable/add" />
<View
android:id="@+id/view3"
android:layout_width="2dp"
android:layout_height="55dp"
android:background="@drawable/green" />
<ImageButton
android:id="@+id/refresh"
android:layout_width="58dp"
android:layout_height="55dp"
android:src="@drawable/refresh" />
<View
android:id="@+id/view4"
android:layout_width="2dp"
android:layout_height="55dp"
android:background="@drawable/green" />
<ImageButton
android:id="@+id/ib_personal_center"
android:layout_width="50dp"
android:layout_height="55dp"
android:layout_weight="0.84"
android:src="@drawable/person" />
</LinearLayout>
</LinearLayout>
後臺代碼:
package com.example.coursedesign;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity {
ImageButton buttonRefresh;
ImageButton buttonAdd;
ImageButton buttonHome;
ImageButton buttonPerson;
DBOpenHelper dbHelper;
List<String> listString=new ArrayList<String>();
ListView listview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbHelper = new DBOpenHelper(getApplicationContext(),DBOpenHelper.name , null, 1);
buttonRefresh=(ImageButton) findViewById(R.id.refresh);//刷新
listview=(ListView) findViewById( R.id.main_list);
buttonRefresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listString = dbHelper.readAllCommodities();
ArrayAdapter<String> adapter=new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,listString);
listview.setAdapter(adapter);
}
});
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {///List
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String s = (String) listview.getAdapter().getItem(position);
Bundle bundle1 = new Bundle();
bundle1.putInt("position",position);
bundle1.putString("title",s);
Intent intent = new Intent(MainActivity.this, ListViewActivity.class);
intent.putExtras(bundle1);
startActivity(intent);
}
});
buttonAdd=(ImageButton) findViewById(R.id.ib_add_product);//Add
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, AddActivity.class);
startActivity(intent);
}
});
buttonHome=(ImageButton) findViewById(R.id.ib_home_page);//home
buttonHome.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "已在主頁", Toast.LENGTH_SHORT).show();
}
});
buttonPerson=(ImageButton) findViewById(R.id.ib_personal_center);///person
buttonPerson.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, PersonActivity.class);
startActivity(intent);
Toast.makeText(getApplicationContext(), "進入個人中心", Toast.LENGTH_SHORT).show();
}
});
}
}
3.2 各功能模塊
添加備忘錄:
界面
通過SQLite數據實現對備忘錄的添加。
界面代碼:
<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/blue"
tools:context="com.example.coursedesign.AddActivity" >
<View
android:layout_width="match_parent"
android:layout_height="50dp" />
<EditText
android:id="@+id/add_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="請輸入添加的信息" />
<View
android:layout_width="match_parent"
android:layout_height="120dp" />
<Button
android:id="@+id/add_button"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="提交"
/>
</LinearLayout>
後臺代碼:
package com.example.coursedesign;
import android.app.Activity;
import android.app.backup.SharedPreferencesBackupHelper;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class AddActivity extends Activity {
Button button;
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
button=(Button) findViewById(R.id.add_button);
editText=(EditText) findViewById(R.id.add_text);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s=editText.getText().toString();
DBOpenHelper dbHelper = new DBOpenHelper(getApplicationContext(), DBOpenHelper.name, null, 1);
if(s!=null){
if(dbHelper.addMyCollection(s)){
Toast.makeText(getApplicationContext(), "添加成功", Toast.LENGTH_SHORT).show();
SharedPreferences sharedP=getSharedPreferences("SaveTable",MODE_PRIVATE);
SharedPreferences.Editor editor=sharedP.edit();
int num=sharedP.getInt("number", 0);
num++;
editor.putInt("number", num);
editor.commit();
finish();
}
else{
Toast.makeText(getApplicationContext(), "添加失敗", Toast.LENGTH_SHORT).show();
}
}
}
});
}
}
刪除和修改備忘錄:
通過SQLite數據實現對備忘錄的修改和刪除。
界面:
界面代碼:
<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/blue"
tools:context="com.example.coursedesign.ListViewActivity" >
<EditText
android:id="@+id/listView_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="你好"
/>
<View
android:layout_width="match_parent"
android:layout_height="120dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal">
<View
android:layout_width="20dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/listView_updata"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="修改"
/>
<View
android:layout_width="90dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/listView_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="刪除"
/>
</LinearLayout>
</LinearLayout>
後臺代碼:
package com.example.coursedesign;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class ListViewActivity extends Activity {
EditText text;
Button button_up;
Button button_delete;
int position;
String str;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view);
text=(EditText) findViewById(R.id.listView_text);
button_delete=(Button) findViewById(R.id.listView_delete);
button_up=(Button) findViewById(R.id.listView_updata);
Bundle b = getIntent().getExtras();
if( b != null) {
str=b.getString("title");
//Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
text.setText(str.toCharArray(), 0, str.length());
position = b.getInt("position");
}
button_delete.setOnClickListener(new View.OnClickListener() {//delete
@Override
public void onClick(View v) {
DBOpenHelper dbHelper = new DBOpenHelper(getApplicationContext(), DBOpenHelper.name, null, 1);
dbHelper.deleteMyCollection(str);
Toast.makeText(getApplicationContext(), "刪除成功", Toast.LENGTH_SHORT).show();
finish();
}
});
button_up.setOnClickListener(new View.OnClickListener() {//delete
@Override
public void onClick(View v) {
String wordNew="";
wordNew=text.getText().toString();
DBOpenHelper dbHelper = new DBOpenHelper(getApplicationContext(), DBOpenHelper.name, null, 1);
if(dbHelper.updateUser(wordNew, str)){
Toast.makeText(getApplicationContext(), "更新成功", Toast.LENGTH_SHORT).show();
finish();
}
}
});
}
}
進入頁面:
通過使用Intent進行Activity的啓動。
界面:
界面代碼:
<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/note2"
tools:context="com.example.coursedesign.FirstActivity" >
<View android:layout_width="150dp"
android:layout_height="79dp"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="歡迎來到生活小助手"
android:layout_gravity="center_horizontal"
android:textColor="#68EE68"
android:textSize="24dp"
android:textStyle="bold"/>
<View android:layout_width="150dp"
android:layout_height="79dp"/>
<Button
android:id="@+id/Loading"
android:layout_width="70dp"
android:layout_height="40dp"
android:background="@drawable/green1"
android:text="進入"
android:layout_gravity="center_horizontal"
android:textColor="#F24FFF"
android:textSize="30dp"
android:textStyle="bold"
tools:ignore="MissingConstraints" />
</LinearLayout>
後臺代碼:
package com.example.coursedesign;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
public class FirstActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
Button button=(Button) findViewById(R.id.Loading);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(FirstActivity.this, MainActivity.class);
startActivity(intent);
}
});
}
}
個人中心
備忘錄數量的統計以及軟件的說明
界面:
界面代碼:
<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/blue"
tools:context="com.example.coursedesign.PersonActivity" >
<TextView
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="@drawable/green1"
android:gravity="center_horizontal"
android:text="個人中心"
android:textSize="20sp"
android:textStyle="italic" />
<View
android:layout_width="2dp"
android:layout_height="0dp" />
<TextView
android:layout_width="match_parent"
android:layout_marginTop="12dp"
android:layout_height="25dp"
android:background="@drawable/yellow"
android:gravity="center_horizontal"
android:text="您的記錄總共爲"
android:textSize="20sp"
android:textStyle="italic" />
<TextView
android:id="@+id/person_text"
android:layout_width="match_parent"
android:layout_height="89dp"
android:background="@drawable/yellow"
android:gravity="center_horizontal"
android:text="50"
android:textSize="85sp"
android:textStyle="italic" />
<Button
android:id="@+id/person_button"
android:layout_width="140dp"
android:layout_height="38dp"
android:layout_marginTop="16dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/white"
android:text="軟件介紹" />
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="10dp"
android:background="@drawable/green" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/person_home_page"
android:layout_width="58dp"
android:layout_height="55dp"
android:src="@drawable/home" />
<View
android:layout_width="2dp"
android:layout_height="55dp"
android:background="@drawable/green" />
<ImageButton
android:id="@+id/person_add_product"
android:layout_width="58dp"
android:layout_height="55dp"
android:src="@drawable/add" />
<View
android:layout_width="2dp"
android:layout_height="55dp"
android:background="@drawable/green" />
<ImageButton
android:id="@+id/person_refresh"
android:layout_width="58dp"
android:layout_height="55dp"
android:src="@drawable/refresh" />
<View
android:layout_width="2dp"
android:layout_height="55dp"
android:background="@drawable/green" />
<ImageButton
android:id="@+id/person_personal_center"
android:layout_width="50dp"
android:layout_height="55dp"
android:layout_weight="0.84"
android:src="@drawable/person" />
</LinearLayout>
</LinearLayout>
後臺代碼:
package com.example.coursedesign;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class PersonActivity extends Activity {
TextView text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_person);
SharedPreferences sharedP=getSharedPreferences("SaveTable",MODE_PRIVATE);
int num=sharedP.getInt("number", 0);
Integer num2=(Integer)num;
text=(TextView) findViewById(R.id.person_text);
text.setText(num2.toString());
Button button=(Button) findViewById(R.id.person_button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(PersonActivity.this, AppActivity.class);
startActivity(intent);
}
});
}
}
軟件說明:
對軟件的進一步說明。
界面:
界面代碼:
<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/blue"
tools:context="com.example.coursedesign.AppActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="開發目的:"
android:textSize="20sp"
android:layout_marginTop="5dp"
android:layout_marginStart="5dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="它是幫助你忘記的事情,在每個人忙碌的生活當中,人的記憶是有限的,備忘錄就是讓你把多個事情都能記起的東西。"
android:textSize="15sp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:layout_marginTop="5dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="開發人員:"
android:textSize="20sp"
android:layout_marginTop="5dp"
android:layout_marginStart="5dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="何昊"
android:textSize="15sp"
android:layout_marginTop="5dp"
android:layout_marginStart="5dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="系統版本:"
android:textSize="20sp"
android:layout_marginTop="5dp"
android:layout_marginStart="5dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="android app v1.0.0"
android:textSize="15sp"
android:layout_marginTop="5dp"
android:layout_marginStart="5dp"/>
<Button
android:id="@+id/person_button"
android:layout_width="150dp"
android:layout_height="50dp"
android:text="返回"
android:textSize="20sp"
android:layout_marginTop="5dp"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
後臺代碼:
package com.example.coursedesign;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
public class AppActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_app);
Button button = (Button) findViewById(R.id.person_button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
}
4 總結
談一下發現的問題與收穫:
- 開始時使用相對佈局進行設計,以爲可以通過簡單的拖拽就可以實現佈局的設計,後面發現在控件變多的時候,變得很麻煩,並且由於界面的選擇,eclipse這邊的界面與模擬器的界面並不相同。後來使用線性佈局進行設計。
- 之前上課學過openOrCreateDatabase方法與SQLitreOpenHelper類,存在有一些不明白的問題,通過這次課設,掌握了這些知識。
3. 對時間規劃不足,使得項目結束時間有點晚。