Android移動應用開發
課程設計報告
(2019—20120學年 第1學期)
“學跡”學習app
系 別 信 息 與 控 制 工 程
專 業 計 算 機 科 學 與 技 術
班 級 計 算 機 1 7 0 2
學 號 1 7 3 2 3 0 2 3 0
姓 名 唐 亞 東
指導教師 郭 丹
目錄
一.應用需求分析... 3
1.1用例分析UML圖... 3
1.2用例說明... 4
二..應用系統設計... 5
2.1.應用核心模塊時序圖:... 5
2.2應用類圖... 6
2.3Android數據庫概述... 6
2.4數據庫表詳細設計... 7
2.4.1 用戶表... 7
2.4.2 筆記內容表... 7
2.4.3 收藏表... 8
三.應用測試... 8
3.1系統測試用例... 8
3.2應用系統測試結果... 10
(1)系統測試方法... 10
(2)用戶注冊登錄功能測試... 10
(3)用戶添加查看刪除筆記收藏功能測試... 10
(5)用戶名,密碼修改功能測試... 10
(6)閱讀本地書籍,瀏覽網絡教程功能測試... 10
(7)退出功能測試... 11
四.應用實現... 11
4.1界面布局... 11
4.2用戶注冊登錄功能... 12
4.3添加筆記,添加收藏,查看筆記,查看收藏,刪除筆記功能核心界面:... 14
4.4閱讀本地書籍功能核心界面:... 16
4.5瀏覽網絡教程核心界面:... 17
4.6 退出應用功能實現... 17
五 .總結... 18
附件1:... 18
課程設計題目:... 18
技術說明:... 19
UML類圖:... 20
代碼清單文件... 20
布局文件:... 22
JAVA類說明:... 26
一.應用需求分析
1.1用例分析UML圖
用例圖如圖所示
應用UML用例圖
1.2用例說明
應用啟動第一次進入歡迎頁面,點擊體驗進入總分為3個功能模塊的用例,閱讀本地書籍,包含3個功能,可添加筆記,添加收藏,返回主頁。網絡書城使用web view顯示網絡教程,我的模塊,包含用戶登錄,筆記,收藏,關於著作者,設置,退出應用。
二..應用系統設計
2.1.應用核心模塊時序圖:
核心模塊時序圖
2.2應用類圖
應用類圖
2.3Android數據庫概述
Android自帶了SQLite數據庫,是一款輕型的數據庫,是遵守ACID的關聯式數據庫管理系統,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數據庫管理系統來講,它的處理速度比他們都快。
關於Sqlite的數據類型,你會驚訝:Typelessness(無類型). 對! SQLite是無類型的. 這意味着你可以保存任何類型的數據到你所想要保存的任何表的任何列中, 無論這列聲明的數據類型是什么. 對於SQLite來說對字段不指定類型是完全有效的。
2.4數據庫表詳細設計
對應用所需功能需求分析通過了設計確定了系統數據庫中表的設計,該系統有三張表(用戶表,收藏表,筆記內容表),下面為表的詳細設計。
2.4.1 用戶表
字段名 |
類型 |
是否可為空 |
是否為主鍵 |
描述 |
u_id |
Varchar |
否 |
否 |
賬戶 |
u_name |
Varchar |
否 |
否 |
用戶名 |
u_pwd |
Varchar |
否 |
否 |
密碼 |
Table [user_info]
Fields: 3
[u_id]: VARCHAR(20)
[u_name]: VARCHAR(20)
[u_pwd]: VARCHAR(20)
Indexes: 0
Triggers: 0
Table constraints:
Primary Key:
Fields:
On Conflict:
Foreign Keys: 0
Unique constraints: 0
Check constraints: 0
Table [user_info] end
2.4.2 筆記內容表
字段名 |
類型 |
是否可為空 |
是否為主鍵 |
描述 |
u_time |
Integer |
否 |
否 |
筆記編號 |
u_bj_content |
Varchar |
否 |
否 |
筆記內容 |
Table [user_sc]
Fields: 2
[u_time]: integer
[u_bj_content]: VARCHAR(1000)
Indexes: 0
Triggers: 0
Table constraints:
Primary Key:
Fields: [u_time]
On Conflict:
Foreign Keys: 0
Unique constraints: 0
Check constraints: 0
Table [user_sc] end
2.4.3 收藏表
字段名 |
類型 |
是否可為空 |
是否為主鍵 |
描述 |
u_sc_id |
Integer |
否 |
否 |
收藏編號 |
u_sc |
Varchar |
否 |
否 |
收藏標題 |
Table [u_sc]
Fields: 2
[u_sc_id]: integer
[u_sc]: VARCHAR(10)
Indexes: 0
Triggers: 0
Table constraints:
Primary Key:
Fields: [u_sc_id]
On Conflict:
Foreign Keys: 0
Unique constraints: 0
Check constraints: 0
Table [u_sc] end
三.應用測試
3.1系統測試用例
系統測試就是利用測試工具按照測試方案和流程對產品進行功能和性能測試,根據需要編寫不同的測試工具,設計和維護測試系統,對測試方案可能出現的問題進行分析。根據功能需求和性能需求制定以下測試用例,測試用例如表所示。
測試ID |
用例描述 |
操作步驟 |
預期結果 |
實際結果 |
1 |
用戶注冊 |
輸入賬號密碼用戶名點擊注冊 |
Toast顯示注冊成功,數據庫插入數據 |
符合預期 |
2 |
用戶登錄 |
輸入用戶名密碼點擊登錄 |
Toast登陸成功,跳轉回主界面 |
符合預期 |
3 |
添加收藏 |
點擊收藏 |
Toast顯示收藏成功數據庫插入數據 |
符合預期 |
4 |
添加筆記 |
點擊添加筆記 輸入筆記 |
Toast顯示添加成功,數據庫插入數據 |
符合預期 |
5 |
查看收藏 |
點擊收藏 |
查看收藏書籍名稱 |
符合預期 |
6 |
查看筆記 |
點擊筆記 |
查看已經添加筆記 |
符合預期 |
7 |
刪除筆記 |
點擊刪除筆記,點擊刷新, |
筆記刪除成功 |
符合預期 |
8 |
修改用戶名 |
輸入用戶名 |
修改成功 |
符合預期 |
9 |
修改密碼 |
輸入原密碼,再輸入新密碼 |
修改成功 |
符合預期 |
10 |
閱讀本地書籍 |
點擊書籍圖片 |
閱讀本地書籍 |
符合預期 |
11 |
瀏覽網絡教程 |
點擊網絡書城 |
瀏覽網絡教程 |
符合預期 |
12 |
退出應用 |
操作步驟點擊退出按鈕 |
退出應用 |
符合預期 |
3.2應用系統測試結果
(1)系統測試方法
測試過程按4個步驟進行,即單元測試、集成測試、確認測試和系統測試及發版測試。
①單元測試:集中對用源代碼實現的每一個程序單元進行測試,檢查各個程序模塊是否正確地實現了規定的功能。
②集成測試:把已測試過的模塊組裝起來,主要對與設計相關的軟件體系結構的構造進行測試。
③確認測試:檢查已實現的軟件是否滿足了需求規格說明中確定了的各種需求,以及軟件配置是否完全正確。
④系統測試:把已經經過確認的軟件納入實際運行環境中,與其它系統成份組合在一起進行測試。
(2)用戶注冊登錄功能測試
在我的頁面下點擊用戶按鈕進入登錄界面,登錄界面左下角點擊進入注冊界面,輸入信息后點擊注冊toast顯示注冊成功,即可返回登錄頁面輸入用戶名密碼進行登錄,登錄后自動跳轉回主頁,進入我的頁面可見用戶+用戶名即登陸成功。如圖堆(1)
(3)用戶添加查看刪除筆記收藏功能測試
在閱讀書籍的頁面下點擊添加收藏按鈕Toast顯示添加成功,點擊頁面左下角添加筆記,自定義彈窗輸入筆記內容,點擊確定,即可添加成功返回我的頁面點擊筆記可查看筆記,點擊刪除筆記,彈窗內輸入筆記id,點擊刷新按鈕,可見指定筆記已經刪除,點擊收藏,可見已經添加收藏的書籍名稱。如圖堆(2)
(5)用戶名,密碼修改功能測試
在我的頁面下點擊設置按鈕進入設置界面,點擊修改用戶名,在彈窗內輸入舊用戶名,確定后在輸入新用戶名,即可修改成功 點擊修改密碼,在彈窗內輸入舊密碼,確定后在輸入新密碼,即可修改成功 。
(6)閱讀本地書籍,瀏覽網絡教程功能測試
點擊本地書籍,再點擊書籍封面,即可閱讀指定書籍PDF文件,點擊網絡教程,可瀏覽網絡教程。如圖堆(3)
(7)退出功能測試
在我的頁面下點擊退出應用按鈕,退出App。
四.應用實現
為了實現用戶信息,筆記,收藏在數據庫中的增加,刪除,查找等操作,使用操作數據庫的核心類android.database.sqlite.SQLiteDatabase。使用SQLiteOpenHelper的子類來完成創建、打開數據庫及各種對數據庫的操作。數據庫的類繼承函數,顯示了數據庫類的繼承關系。實現閱讀服務器端PDF文件書籍,采用導入Okhttp-3.2.0.jar包借用了github上的一個index.html文件
4.1界面布局
Android的資源文件保存在/res的子目錄中。其中/res/drawable/目錄中保存的是圖像文件,/res/values目錄中保存的是用來自定義字符串和顏色的文件,/res/xml目錄中保存的是XML格式的數據文件。所有在程序開發階段可以被調用的資源都保存在這些目錄中,在對界面進行繪制時要考慮到不同手機屏幕大小可能不一樣,應盡量兼容大多數手機屏幕尺寸,使之顯示無障礙。
4.1.1第一次進入,歡迎頁面
圖(a)
關鍵代碼:
//采用tablelayout+Fragment實現歡迎滑動頁面用SharedPreferences
進行判斷是否第一次進入應用
vp = findViewById(R.id.vp);
tableLayout = findViewById(R.id.tb);
FPagerAdapter ap = new FPagerAdapter(getSupportFragmentManager());
ap.add(new wel_1(), "");
ap.add(new wel_2(), "");
ap.add(new wel_3(), "");
vp.setAdapter(ap);
tableLayout.setupWithViewPager(vp);
4.2用戶注冊登錄功能
在“學跡app”主要的功能操作之一,
核心界面:
圖堆(1)
用戶注冊登錄關鍵代碼:
//用戶注冊代碼
db = mydb.getWritableDatabase();
u_name=u_name_z.getText().toString();
u_id=u_id_z.getText().toString();
u_pwd=u_pwd_z.getText().toString();
ContentValues values = new ContentValues();
values.put("u_id", u_id);
values.put("u_name", u_name);
values.put("u_pwd", u_pwd);
db.insert("user_info", null, values);//數據庫添加數據
db.close();
Toast.makeText(siginActivity.this, "注冊成功", Toast.LENGTH_SHORT).show();
//用戶登錄關鍵代碼
SQLiteDatabase db=mydb.getReadableDatabase();
String uname=u_name.getText().toString();
String upwd=u_pwd.getText().toString();
String sql="select * from user_info where u_name=? and u_pwd=?";
Cursor cursor=db.rawQuery(sql, new String[]{uname,upwd});//數據庫查詢若在,就登錄成功
if(cursor.moveToFirst()==true){
cursor.close();
Toast.makeText(loginActivity.this,"登錄成功",Toast.LENGTH_SHORT).show();
Intent intent=new Intent(loginActivity.this, MainActivity.class);//跳轉回主頁面
intent.putExtra("zdf",1);
intent.putExtra("yhm",uname);
startActivity(intent);
finish();
}else {
Toast.makeText(loginActivity.this,"登錄失敗賬號or密碼錯誤",Toast.LENGTH_SHORT).show();
}
4.3添加筆記,添加收藏,查看筆記,查看收藏,刪除筆記功能核心界面:
圖堆(2)
//核心代碼:
//**此處數據添加使用數據庫添加不再重復贅述,重點貼出自定義彈窗實現輸入筆記代碼
AlertDialog dialog;
final EditText editText=new EditText(read_Activity.this);
AlertDialog.Builder builder=new AlertDialog.Builder(read_Activity.this)
.setTitle("添加筆記")
.setView(editText)
.setIcon(R.drawable.tx)
.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int arg1) { db = mydq.getWritableDatabase();
String u_bj=editText.getText().toString();
ContentValues values = new ContentValues();values.put("u_bj_content",u_bj);
db.insert("user_sc", null, values);
db.close();
dialog.dismiss();
Toast.makeText(read_Activity.this,"添加成功",Toast.LENGTH_LONG).show();
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int arg1) { dialog.dismiss();}
});
builder.setCancelable(true);
dialog=builder.create();
dialog.setCanceledOnTouchOutside(true);
dialog.show();
//顯示采用listview顯示,以下是數據庫內容添加到listView內容部分代碼
listView=findViewById(R.id.bj_list);
final ArrayList<String> list = new ArrayList();
final my_db_helper mydb = new my_db_helper(this);
SQLiteDatabase db=mydb.getReadableDatabase();
Cursor cursor = db.query("user_sc", null, null, null, null, null, null);
if (cursor!=null){
while (cursor.moveToNext()) {
int priceIndex = cursor.getColumnIndex("u_time");
int numberIndex = cursor.getColumnIndex("u_bj_content");
String time = cursor.getString(priceIndex);
String u_context = cursor.getString(numberIndex);
list.add("筆記編號"+time+":"+u_context);
Toast.makeText(bijiActivity.this,"進入筆記"+u_context,Toast.LENGTH_SHORT).show();
}
cursor.close();
db.close();
4.4閱讀本地書籍功能核心界面:
圖堆(3)
關鍵代碼:
//此處使用Gridview+listview來實現本地書籍的顯示及監聽,適配器及具體代碼未貼出
gridView = (GridView) getActivity().findViewById(R.id.mc_list);
mc_list();
cridadapter= new Cridadapter(this.getContext(),list);
gridView.setAdapter(cridadapter);
}
private void mc_list() {
list=new ArrayList<p>();
list.add(new p(" 白帽子講web安全",R.drawable.web_aq));
list.add(new p("android總結",R.drawable.android_zj));
list.add(new p("MySQL數據庫入門",R.drawable.mysql));
list.add(new p("精通nginx",R.drawable.nginx));
list.add(new p("Node.js代碼段",R.drawable.node_js));
list.add(new p("Python 3.5從零開始學",R.drawable.pythoon));
list.add(new p("Tomcat 應用開發",R.drawable.tomcat));
list.add(new p("Android 模塊化項目實戰",R.drawable.android_xm));
}
4.5瀏覽網絡教程核心界面:
圖(4)
//關鍵代碼:
//采用WebView加載網絡頁面來顯示
WebView webView=(WebView) getActivity().findViewById(R.id.web);
webView.loadUrl("http://m.runoob.com");
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view,String url){
view.loadUrl(url);
return true;
}
});
4.6 退出應用功能實現:
關鍵代碼:
Button b_tc = (Button) getActivity().findViewById(R.id.tcyy);//出錯
b_tc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getActivity().finish();
}
});
五 .總結
這次課程設計花費了兩天不眠不休的去構思開發,對於安卓,由於平時對安卓開發這方面興趣濃厚,所以在學習的時候,帶着興趣去學習的。當然,對於android開發領域,在課堂以及自己學習過程中,比想象要困難的多。為了在短時間內投入到開發,完成項目,需要花大量的時間去學習,動手編程,掌握開發中的各種控件的使用,理解了Android各個組件的實現,內容,及生命周期,以及各個內的使用,接口的使用,Android studio來開發移動應用,Android開發框架,學習SQLite數據庫的使用。
在開發當中遇到了很多困難,仍然遇見了很多困難,有時候,也會因為個別問題卡殼了很久,遲遲沒能解決,到處在網上查找答案,或者向安卓移動開發群里面請求各位大佬的幫助。經過努力這些問題都一一解決了,當這些問題一一被我解決之后,那種自信感就更加上升。
這次課程設計是對自己的一個挑戰,在經過努力,遇到的問題最終一步步都解決了。完成課程設計。
附件1:
課程設計題目:”學跡”學習應用
技術說明:
序 號 |
分類
技術說明 |
具體使用位置 |
重點、難點 |
|
1 |
UI設計 |
登錄界面及主頁面 |
重點:UI設計 |
|
2 |
CridView+listView應用 |
本地書籍,網格實現,瀏覽 |
適配器使用以及響應監聽 |
|
3 |
Dialog的使用
|
使用自定義Dialog進行提示和輸入彈窗
|
Dialog進行輸入 |
|
4 |
SQLite數據庫 |
賬號,密碼,用戶名,收藏,筆記內容,使用sqlite數據庫存儲 |
重點: SQLite數據庫的應用 難點:數據庫的增刪改查操作 |
|
5 |
SharedPreferences存儲
|
判斷是否第一次 進入是否打開歡迎界面 |
無 |
|
6 |
WebView+html 應用 |
實現閱讀本地pdf文件 |
在線加載服務器端pdf文件較慢 |
|
7 |
Activity組件的應用 |
歡迎界面進入主頁面,點擊進入閱讀界面,以及各個交互界面 |
重點:多Activity的切換 |
|
8 |
ViewPager +TabLayout+ Fragment實現左右滑動首次歡迎界面,以及主頁面
|
首次進入歡迎界面 主頁面 |
TabLayout啟動ViewPager
|
|
9 |
ListView的使用 |
本地書籍的顯示,筆記顯示,收藏的顯示 |
重點:LiseView的應用 |
|
10 |
WebView應用 |
顯示網絡教程 |
無 |
|
11 |
Fragment應用 |
主頁面內容 |
Fragment生命周期+以及Fragment內跳轉 |
UML類圖:
代碼清單文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tangya.xueji">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/xj"
android:label="學跡"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true">
<activity android:name=".me.settingActivity">
<intent-filter>
<action android:name="android.intent.action.SZ" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".me.bijiActivity">
<intent-filter>
<action android:name="android.intent.action.BJ" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".me.shoucActivity">
<intent-filter>
<action android:name="android.intent.action.SC" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".me.siginActivity" />
<activity android:name=".me.loginActivity">
<intent-filter>
<action android:name="android.intent.action.LOGIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".read.read_Activity">
<intent-filter>
<action android:name="android.intent.action.ST" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.STAR" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".Wel" >
<intent-filter>
<action android:name="android.intent.action.WEL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".wel_bool">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
布局文件:
1:部分截圖
Main.xml代碼
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1" />
<View
android:layout_width="match_parent"
android:layout_height="0.5dip"
android:background="#8a8a8a" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="54dip"
app:tabIndicatorHeight="0dip" />
</LinearLayout>
注冊界面.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fa"
android:background="@drawable/gradient"
xmlns:app="http://schemas.android.com/apk/res-auto">
<ImageView
android:id="@+id/imageView"
android:layout_width="80sp"
android:layout_height="80sp"
app:srcCompat="@drawable/tx"
android:layout_centerHorizontal="true"
android:layout_marginTop="100sp"
/>
<LinearLayout
android:id="@+id/sigin_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView"
android:layout_marginTop="50dp"
android:background="@drawable/et_1"
android:layout_marginLeft="20sp"
android:layout_marginRight="20sp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
android:textColor="#FFFFFF"
android:text="用戶名:"
android:textStyle="bold"
android:textSize="20sp" />
<EditText
android:id="@+id/et_u_name"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp">
</EditText>
</LinearLayout>
<LinearLayout
android:id="@+id/lzh"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/sigin_name"
android:layout_marginTop="50dp"
android:background="@drawable/et_1"
android:layout_marginLeft="20sp"
android:layout_marginRight="20sp"
android:orientation="horizontal">
<TextView
android:id="@+id/id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
android:text="賬 號:"
android:textColor="#FFFFFF"
android:textStyle="bold"
android:textSize="20sp" />
<EditText
android:id="@+id/et_u_id"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp">
</EditText>
</LinearLayout>
<LinearLayout
android:id="@+id/mm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/lzh"
android:layout_marginTop="50dp"
android:background="@drawable/et_1"
android:layout_marginLeft="20sp"
android:layout_marginRight="20sp"
android:orientation="horizontal">
<TextView
android:id="@+id/pw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
android:text="密 碼:"
android:textColor="#FFFFFF"
android:textStyle="bold"
android:textSize="20sp" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:password="true"
android:id="@+id/et_u_pwd"
android:padding="10dp">
</EditText>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/mm"
android:layout_marginLeft="30dp"
android:layout_marginTop="60dp"
android:layout_marginRight="60dp"
android:orientation="horizontal">
<Button
android:id="@+id/fh_dl"
android:layout_width="wrap_content"
android:layout_height="30sp"
android:layout_marginLeft="5dp"
android:background="@drawable/et_1"
android:text="返回登錄"
android:textColor="#03A9F4" />
<Button
android:id="@+id/qr_zc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/mm"
android:layout_marginLeft="30dp"
android:background="@drawable/yuan_bt"
android:text=" 確 認 注 冊 "
android:textColor="#FFFFFF"
android:textSize="25sp"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
JAVA類說明:
my_db_helper
|
數據庫類 |
bdFragment
|
本地書籍類 |
meFragment
|
我的 |
scFragment
|
網絡書城 |
bijiActivity
|
筆記查看操作 |
loginActivity
|
登錄 |
settingActivity
|
設置 |
shoucActivity |
收藏 |
siginActivity
|
注冊 |
bj_list_adapter |
筆記listview適配器 |
Cridadapter |
本地書籍lisview適配器 |
FPagerAdapter |
歡迎界面適配器 |
MFragmentAdapter |
主頁適配器 |
p |
封裝本地書籍信息實體類 |
read_Activity |
閱讀類 |
MainActivity |
主頁類 |
Wel |
歡迎類 |
wel_bool |
判斷是否第一次進入工具類 |