日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

安卓四大组件

發布時間:2023/12/20 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 安卓四大组件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android四大組件分別為activityservicecontentproviderbroadcast receiver

一、android四大組件詳解

1activity

1)一個Activity通常就是一個單獨的屏幕(窗口)。

2Activity之間通過Intent進行通信。

3android應用中每一個Activity都必須要在AndroidManifest.xml配置文件中聲明,否則系統將不識別也不執行該Activity

2service

1service用于在后臺完成用戶指定的操作。service分為兩種:

astarted(啟動):當應用程序組件(如activity)調用startService()方法啟動服務時,服務處于started狀態。

bbound(綁定):當應用程序組件調用bindService()方法綁定到服務時,服務處于bound狀態。

(2)startService()bindService()區別:

(a)started service(啟動服務)是由其他組件調用startService()方法啟動的,這導致服務的onStartCommand()方法被調用。當服務是started狀態時,其生命周期與啟動它的組件無關,并且可以在后臺無限期運行,即使啟動服務的組件已經被銷毀。因此,服務需要在完成任務后調用stopSelf()方法停止,或者由其他組件調用stopService()方法停止。

(b)使用bindService()方法啟用服務,調用者與服務綁定在了一起,調用者一旦退出,服務也就終止,大有不求同時生,必須同時死的特點。

(3)開發人員需要在應用程序配置文件中聲明全部的service,使用<service></service>標簽。

(4)Service通常位于后臺運行,它一般不需要與用戶交互,因此Service組件沒有圖形用戶界面。Service組件需要繼承Service基類。Service組件通常用于為其他組件提供后臺服務或監控其他組件的運行狀態。

3content provider

1android平臺提供了ContentProvider使一個應用程序的指定數據集提供給其他應用程序。其他應用可以通過ContentResolver類從該內容提供者中獲取或存入數據

2)只有需要在多個應用程序間共享數據是才需要內容提供者。例如,通訊錄數據被多個應用程序使用,且必須存儲在一個內容提供者中。它的好處是統一數據訪問方式。

3ContentProvider實現數據共享ContentProvider用于保存和獲取數據,并使其對所有應用程序可見。這是不同應用程序間共享數據的唯一方式,因為android沒有提供所有應用共同訪問的公共存儲區。

4)開發人員不會直接使用ContentProvider類的對象,大多數是通過ContentResolver對象實現對ContentProvider的操作。

5ContentProvider使用URI來唯一標識其數據集,這里的URIcontent://作為前綴,表示該數據由ContentProvider來管理。

4broadcast receiver

1)你的應用可以使用它對外部事件進行過濾,只對感興趣的外部事件(如當電話呼入時,或者數據網絡可用時)進行接收并做出響應。廣播接收器沒有用戶界面。然而,它們可以啟動一個activityserice來響應它們收到的信息,或者用NotificationManager來通知用戶。通知可以用很多種方式來吸引用戶的注意力,例如閃動背燈、震動、播放聲音等。一般來說是在狀態欄上放一個持久的圖標,用戶可以打開它并獲取消息。

2)廣播接收者的注冊有兩種方法,分別是程序動態注冊和AndroidManifest文件中進行靜態注冊。

3)動態注冊廣播接收器特點是當用來注冊的Activity關掉后,廣播也就失效了。靜態注冊無需擔憂廣播接收器是否被關閉,只要設備是開啟狀態,廣播接收器也是打開著的。也就是說哪怕app本身未啟動,該app訂閱的廣播在觸發時也會對它起作用。

二、android四大組件總結:

14大組件的注冊

4大基本組件都需要注冊才能使用,每個ActivityserviceContent Provider都需要在AndroidManifest文件中進行配置。AndroidManifest文件中未進行聲明的activity、服務以及內容提供者將不為系統所見,從而也就不可用。而broadcast receiver廣播接收者的注冊分靜態注冊(在AndroidManifest文件中進行配置)和通過代碼動態創建并以調用Context.registerReceiver()的方式注冊至系統。需要注意的是在AndroidManifest文件中進行配置的廣播接收者會隨系統的啟動而一直處于活躍狀態,只要接收到感興趣的廣播就會觸發(即使程序未運行)。

24大組件的激活

內容提供者的激活:當接收到ContentResolver發出的請求后,內容提供者被激活。而其它三種組件activity、服務和廣播接收器被一種叫做intent的異步消息所激活

34大組件的關閉

內容提供者僅在響應ContentResolver提出請求的時候激活。而一個廣播接收器僅在響應廣播信息的時候激活。所以,沒有必要去顯式的關閉這些組件。Activity關閉:可以通過調用它的finish()方法來關閉一個activity。服務關閉:對于通過startService()方法啟動的服務要調用Context.stopService()方法關閉服務,使用bindService()方法啟動的服務要調用Contex.unbindService()方法關閉服務。

4android中的任務(activity棧)

a)任務其實就是activity的棧,它由一個或多個Activity組成,共同完成一個完整的用戶體驗。棧底的是啟動整個任務的Activity,棧頂的是當前運行的用戶可以交互的Activity,當一個activity啟動另外一個的時候,新的activity就被壓入棧,并成為當前運行的activity。而前一個activity仍保持在棧之中。當用戶按下BACK鍵的時候,當前activity出棧,而前一個恢復為當前運行的activity。棧中保存的其實是對象,棧中的Activity永遠不會重排,只會壓入或彈出。

b)任務中的所有activity是作為一個整體進行移動的。整個的任務(即activity棧)可以移到前臺,或退至后臺。

cAndroid系統是一個多任務(Multi-Task)的操作系統,可以在用手機聽音樂的同時,也執行其他多個程序。每多執行一個應用程序,就會多耗費一些系統內存,當同時執行的程序過多,或是關閉的程序沒有正確釋放掉內存,系統就會覺得越來越慢,甚至不穩定。為了解決這個問題,Android引入了一個新的機制,即生命周期(Life Cycle)

?

? ?二.六大布局:

Android六大界面布局方式:

聲明Android程序布局有兩種方式:

1) 使用XML文件描述界面布局;

2) Java代碼中通過調用方法進行控制。

我們既可以使用任何一種聲明界面布局的方式,也可以同時使用兩種方式。

使用XML文件聲明有以下3個特點:

·???????1) 將程序的表現層和控制層分離;

·???????2) 在后期修改用戶界面時,無須更改程序的源程序;

·???????3) 可通過WYSIWYG可視化工具直接看到所設計的用戶界面,有利于加快界面設計的過程。

建議盡量采用XML文件聲明界面元素布局。在程序運行時動態添加界面布局會大大降低應用響應速度,但依然可以在必要時動態改變屏幕內容。

六大界面布局方式包括:?線性布局(LinearLayout)、框架布局(FrameLayout)、表格布局(TableLayout)、相對布局(RelativeLayout)、絕對布局(AbsoluteLayout)和網格布局(GridLayout)?

1.LinearLayout線性布局

LinearLayout容器中的組件一個挨一個排列,通過控制android:orientation屬性,可控制各組件是橫向排列還是縱向排列。

LinearLayout的常用XML屬性及相關方法

XML屬性

相關方法

說明

android:gravity

setGravity(int)

設置布局管理器內組件的對齊方式

android:orientation

setOrientation(int)

設置布局管理器內組件的排列方式,可以設置為horizontalvertical兩個值之一

其中,gravity屬性支持top, left, right, center_vertical, fill_vertical,center_horizontal, fill_horizontal, center, fill, clip_vertical,clip_horizontal。也可以同時指定多種對齊方式的組合。

LinearLayout子元素支持的常用XML屬性及方法

XML屬性

說明

android:layout_gravity

指定該子元素在LinearLayout中的對齊方式

android:layout_weight

指定子元素在LinearLayout中所占的權重

2.TableLayout表格布局

TableLayout繼承自Linearout,本質上仍然是線性布局管理器。表格布局采用行、列的形式來管理UI組件,并不需要明確地聲明包含多少行、多少列,而是通過添加TableRow、其他組件來控制表格的行數和列數。

每向TableLayout中添加一個TableRow就代表一行;

每向TableRow中添加一個一個子組件就表示一列;

如果直接向TableLayout添加組件,那么該組件將直接占用一行;

在表格布局中,可以為單元格設置如下三種行為方式:

·???????Shrinkable:該列的所有單元格的寬度可以被收縮,以保證該表格能適應父容器的寬度;

·???????Strentchable:該列所有單元格的寬度可以被拉伸,以保證組件能完全填滿表格空余空間;

·???????Collapsed:如果該列被設置為Collapsed,那么該列的所有單元格會被隱藏;

TableLayout的常用XML屬性及方法

XML屬性

相關方法

說明

android:collapseColumns

setColumns(int, boolean)

設置需要被隱藏的列的序號,多個序號間用逗號分隔

android:shrinkColumns

setShrinkAllColumns(boolean)

設置需要被收縮的列的序號

android:stretchColumns

setStretchAllColumns(boolean)

設置允許被拉伸的列的序號

3.FrameLayout幀布局

FrameLayout直接繼承自ViewGroup組件。幀布局為每個加入其中的組件創建一個空白的區域(稱為一幀),每個子組件占據一幀,這些幀會根據gravity屬性執行自動對齊。

FrameLayout的常用XM了屬性及方法

XML屬性

相關方法

說明

android:foreground

setForeground(Drawable)

設置該幀布局容器的前景圖像

android:foregroundGravity

setForeGroundGraity(int)

定義繪制前景圖像的gravity屬性

4.RelativeLayout相對布局

RelativeLayoutXML屬性及相關方法說明

XML屬性

相關方法

說明

android:gravity

setGravity(int)

?

android:ignoreGravity

setIgnoreGravity(int)

設置哪個組件不受gravity屬性的影響

為了控制該布局容器的各子組件的布局分布,RelativeLayout提供了一個內部類:RelativeLayout.LayoutParams

RelativeLayout.LayoutParams里只能設為booleanXML屬性

XML屬性

說明

android:layout_centerHorizontal

設置該子組件是否位于布局容器的水平居中

android:layout_centerVertical

?

android:layout_centerParent

?

android:layout_alignParentBottom

?

android:layout_alignParentLeft

?

android:layout_alignParentRight

?

android:layout_alignParentTop

?

RelativeLayout.LayoutParams里屬性值為其他UI組件IDXML屬性

XML屬性

說明

android:layout_toRightOf

控制該子組件位于給出ID組件的右側

android:layout_toLeftOf

?

android:layout_above

?

android:layout_below

?

android:layout_alignTop

?

android:layout_alignBottom

?

android:layout_alignRight

?

android:layout_alignLeft

?

5.Android 4.0新增的網格布局GridLayout

GridLayoutAndroid4.0增加的網格布局控件,與之前的TableLayout有些相似,它把整個容器劃分為rows × columns個網格,每個網格可以放置一個組件。性能及功能都要比tablelayout好,比如GridLayout布局中的單元格可以跨越多行,而tablelayout則不行,此外,其渲染速度也比tablelayout要快。

GridLayout提供了setRowCount(int)setColumnCount(int)方法來控制該網格的行和列的數量。

GridLayout常用的XML屬性和方法說明

XML屬性

相關方法

說明

android:alignmentMode

setAlignmentMode(int)

設置該布局管理器采用的對齊模式

android:columnCount

setColumnCount(int)

設置該網格的列數量

android:columnOrderPreserved

setColumnOrderPreserved(boolean)

設置該網格容器是否保留序列號

android:roeCount

setRowCount(int)

設置該網格的行數量

android:rowOrderPreserved

setRowOrderPreserved(boolean)

設置該網格容器是否保留行序號

android:useDefaultMargins

setUseDefaultMargins(boolean)

設置該布局管理器是否使用默認的頁邊距

為了控制GridLayout布局容器中各子組件的布局分布,GridLayout提供了一個內部類:GridLayout.LayoutParams,來控制Gridlayout布局容器中子組件的布局分布。

GridLayout.LayoutParams常用的XML屬性和方法說明

XML屬性

說明

android:layout_column

設置該組件在GridLayout的第幾列

android:layout_columnSpan

設置該子組件在GridLayout橫向上跨幾列

android:layout_gravity

設置該子組件采用何種方式占據該網格的空間

android:layout_row

設置該子組件在GridLayout的第幾行

android:layout_rowSpan

設置該子組件在GridLayout縱向上跨幾行

6.AbsoluteLayout絕對布局

Android不提供任何布局控制,而是由開發人員自己通過X坐標、Y坐標來控制組件的位置。每個組件都可指定如下兩個XML屬性:

·???????layour_x;

·???????layout_y;

絕對布局已經過時,不應使用或少使用。

界面布局類型的選擇和性能優化

首先得明確,界面布局類型的嵌套越多越深越復雜,會使布局實例化變慢,使Activity的展開時間延長。建議盡量減少布局嵌套,盡量減少創建View對象的數量。

1 . 減少布局層次,可考慮用RelativeLayout來代替LinearLayout。通過Relative的相對其他元素的位置來布局,可減少塊狀嵌套;

2 . 另一種減少布局層次的技巧是使用?<merge />?標簽來合并布局;

3 . 重用布局。Android支持在XML中使用?<include />?標簽,?<include />?通過指定android:layout屬性來指定要包含的另一個XML布局。

如:

<includeandroid:id="@+id/id1"android:layout="@layout/mylayout">

<includeandroid:id="@+id/id2"android:layout="@layout/mylayout">

<includeandroid:id="@+id/id3"android:layout="@layout/mylayout">

? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ?? ? ? ? ?三.五大存儲:

Android中,可供選擇的存儲方式有SharedPreferences、文件存儲、SQLite數據庫方式、內容提供器(Content provider)和網絡。

一.SharedPreferences方式

???????Android提供用來存儲一些簡單的配置信息的一種機制,例如,一些默認歡迎語、登錄的用戶名和密碼等。其以鍵值對的方式存儲,

使得我們可以很方便的讀取和存入.

??????1)程序要實現的功能:
?????? 我們在Name文本框中輸入wangwu,在Password文本框中輸入123456,然后退出這個應用。我們在應用程序列表中找到這個應用,重新啟動,可以看到其使用了前面輸入的Name和Password

??????2)實現的代碼

??????布局

????????

view plaincopy to clipboard

  • <?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"??
  • ????>??
  • ????<TextView????
  • ????????android:layout_width="fill_parent"???
  • ????????android:layout_height="wrap_content"???
  • ????????android:text="SharedPreferences?demo"??
  • ????/>??
  • ??????
  • ????<TextView??
  • ????????android:layout_width="fill_parent"??
  • ????????android:layout_height="wrap_content"??
  • ????????android:text="name"??
  • ????????>??
  • ????</TextView>??
  • ??????
  • ????<EditText??
  • ????????android:id="@+id/name"??
  • ????????android:layout_width="fill_parent"??
  • ????????android:layout_height="wrap_content"??
  • ????????android:text=""??
  • ????????>??
  • ????</EditText>??
  • ??????
  • ????<TextView??
  • ????????android:layout_width="fill_parent"??
  • ????????android:layout_height="wrap_content"??
  • ????????android:text="password"??
  • ????????>??
  • ????</TextView>??
  • ??????
  • ????<EditText??
  • ????????android:id="@+id/password"??
  • ????????android:layout_width="fill_parent"??
  • ????????android:layout_height="wrap_content"??
  • ????????android:password="true"??
  • ????????android:text=""??
  • ????????>??
  • ????</EditText>??
  • </LinearLayout>??
  • ?

    ???????主要實現代碼

    ???????

    view plaincopy to clipboard

  • package?com.demo;??
  • ??
  • import?android.app.Activity;??
  • import?android.content.SharedPreferences;??
  • import?android.os.Bundle;??
  • import?android.widget.EditText;??
  • ??
  • public?class?SharedPreferencesDemo?extends?Activity?{??
  • ??????
  • ????public?static?final?String?SETTING_INFOS?=?"SETTING_Infos";???
  • ????public?static?final?String?NAME?=?"NAME";???
  • ????public?static?final?String?PASSWORD?=?"PASSWORD";???
  • ????private?EditText?field_name;??//接收用戶名的組件???
  • ????private?EditText?filed_pass;??//接收密碼的組件???
  • ??
  • ????@Override??
  • ????public?void?onCreate(Bundle?savedInstanceState)?{??
  • ????????super.onCreate(savedInstanceState);??
  • ????????setContentView(R.layout.main);??
  • ??????????
  • ????????//Find?VIew????
  • ????????field_name?=?(EditText)?findViewById(R.id.name);??//首先獲取用來輸入用戶名的組件???
  • ????????filed_pass?=?(EditText)?findViewById(R.id.password);?//同時也需要獲取輸入密碼的組件???
  • ??
  • ????????//?Restore?preferences???
  • ????????SharedPreferences?settings?=?getSharedPreferences(SETTING_INFOS,?0);?//獲取一個SharedPreferences對象???
  • ????????String?name?=?settings.getString(NAME,?"");??//取出保存的NAME???
  • ????????String?password?=?settings.getString(PASSWORD,?"");?//取出保存的PASSWORD???
  • ??
  • ????????//Set?value???
  • ????????field_name.setText(name);??//將取出來的用戶名賦予field_name???
  • ????????filed_pass.setText(password);??//將取出來的密碼賦予filed_pass???
  • ????}??
  • ??????
  • ????@Override???
  • ????protected?void?onStop(){???
  • ????????super.onStop();???
  • ??????????
  • ????????SharedPreferences?settings?=?getSharedPreferences(SETTING_INFOS,?0);?//首先獲取一個SharedPreferences對象???
  • ????????settings.edit()???
  • ????????????????.putString(NAME,?field_name.getText().toString())???
  • ????????????????.putString(PASSWORD,?filed_pass.getText().toString())???
  • ????????????????.commit();???
  • ????}?//將用戶名和密碼保存進去???
  • ??
  • } ?
  • ???????
    ?????? SharedPreferences保存到哪里去了?

    ???????SharedPreferences是以XML的格式以文件的方式自動保存的,在DDMS中的File Explorer中展開到/data/data/<package

    name>/shared_prefs下,以上面這個為例,可以看到一個叫做SETTING_Infos.xml的文件

    ???????注意:Preferences只能在同一個包內使用,不能在不同的包之間使用。

    二.文件存儲方式

    ??????在Android中,其提供了openFileInput 和 openFileOuput 方法讀取設備上的文件,下面看個例子代碼,具體如下所示:?
    ???????????? StringFILE_NAME = "tempfile.tmp";? //確定要操作文件的文件名
    ????????????FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE); //初始化
    ????????????FileInputStream fis = openFileInput(FILE_NAME); //創建寫入流

    ??????上述代碼中兩個方法只支持讀取該應用目錄下的文件,讀取非其自身目錄下的文件將會拋出異常。需要提醒的是,如果調用

    FileOutputStream 時指定的文件不存在,Android 會自動創建它。另外,在默認情況下,寫入的時候會覆蓋原文件內容,如果想把

    新寫入的內容附加到原文件內容后,則可以指定其模式為Context.MODE_APPEND。

    ?

    三.SQLite數據庫方式

    ?????SQLite是Android所帶的一個標準的數據庫,它支持SQL語句,它是一個輕量級的嵌入式數據庫。
    ??????1)實現的功能

    ?????????在這個例子里邊,我們在程序的主界面有一些按鈕,通過這些按鈕可以對數據庫進行標準的增、刪、改、查。

    ??????2)實現代碼

    ?????????所用到的字符文件

    ??????????

    view plaincopy to clipboard

  • <?xml?version="1.0"?encoding="utf-8"?>??
  • <resources>??
  • ????<string?name="app_name">SQLite數據庫操作實例</string>??
  • ????<string?name="button1">建立數據庫表</string>??
  • ????<string?name="button2">刪除數據庫表</string>??
  • ????<string?name="button3">插入兩條記錄</string>??
  • ????<string?name="button4">刪除一條記錄</string>??
  • ????<string?name="button5">查看數據庫表</string>??
  • </resources>??
  • ?????????布局代碼

    ?????????

    view plaincopy to clipboard

  • <?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"??
  • ????>??
  • ??????
  • ????<TextView????
  • ????????android:layout_width="fill_parent"???
  • ????????android:layout_height="wrap_content"???
  • ????????android:text="@string/app_name"??
  • ????/>??
  • ????<Button???
  • ????????android:text="@string/button1"???
  • ????????android:id="@+id/button1"???
  • ????????android:layout_width="wrap_content"???
  • ????????android:layout_height="wrap_content"??
  • ????????></Button>??
  • ????<Button???
  • ????????android:text="@string/button2"???
  • ????????android:id="@+id/button2"???
  • ????????android:layout_width="wrap_content"???
  • ????????android:layout_height="wrap_content"??
  • ????????></Button>??
  • ????<Button???
  • ????????android:text="@string/button3"???
  • ????????android:id="@+id/button3"???
  • ????????android:layout_width="wrap_content"???
  • ????????android:layout_height="wrap_content"??
  • ????????></Button>??
  • ????<Button???
  • ????????android:text="@string/button4"???
  • ????????android:id="@+id/button4"???
  • ????????android:layout_width="wrap_content"???
  • ????????android:layout_height="wrap_content"??
  • ????????></Button>??
  • ????<Button???
  • ????????android:text="@string/button5"???
  • ????????android:id="@+id/button5"???
  • ????????android:layout_width="wrap_content"???
  • ????????android:layout_height="wrap_content"??
  • ????????></Button>??
  • ??
  • </LinearLayout>??
  • ?????????主要代碼

    ?????????

    view plaincopy to clipboard

    1. ?

  • package?com.sqlite;??
  • ??
  • import?android.app.Activity;??
  • import?android.content.Context;??
  • import?android.database.Cursor;??
  • import?android.database.SQLException;??
  • import?android.database.sqlite.SQLiteDatabase;??
  • import?android.database.sqlite.SQLiteOpenHelper;??
  • import?android.os.Bundle;??
  • import?android.util.Log;??
  • import?android.view.View;??
  • import?android.view.View.OnClickListener;??
  • import?android.widget.Button;??
  • ??
  • /*?
  • ?*?什么是SQLiteDatabase?
  • ?*?一個SQLiteDatabase的實例代表了一個SQLite的數據庫,通過SQLiteDatabase實例的一些方法,我們可以執行SQL語句,?
  • ?*?對數據庫進行增、刪、查、改的操作。需要注意的是,數據庫對于一個應用來說是私有的,并且在一個應用當中,數據庫的名字也是惟一的。??
  • ?*/??
  • ??
  • /*?
  • ?*?什么是SQLiteOpenHelper???
  • ?*?這個類主要生成一個數據庫,并對數據庫的版本進行管理。?
  • ?*?當在程序當中調用這個類的方法getWritableDatabase()或者getReadableDatabase()方法的時候,如果當時沒有數據,那么Android系統就會自動生成一個數據庫。?
  • ?*?SQLiteOpenHelper?是一個抽象類,我們通常需要繼承它,并且實現里邊的3個函數,?
  • ?*?????onCreateSQLiteDatabase):在數據庫第一次生成的時候會調用這個方法,一般我們在這個方法里邊生成數據庫表。?
  • ?*?????onUpgradeSQLiteDatabase,?int,?int):當數據庫需要升級的時候,Android系統會主動的調用這個方法。一般我們在這個方法里邊刪除數據表,并建立新的數據表,當然是否還需要做其他的操作,完全取決于應用的需求。?
  • ?*?????onOpenSQLiteDatabase):這是當打開數據庫時的回調函數,一般也不會用到。??
  • ?*/??
  • ??
  • public?class?SQLiteDemo?extends?Activity?{??
  • ??????
  • ????OnClickListener?listener1?=?null;??
  • ????OnClickListener?listener2?=?null;??
  • ????OnClickListener?listener3?=?null;??
  • ????OnClickListener?listener4?=?null;??
  • ????OnClickListener?listener5?=?null;??
  • ??
  • ????Button?button1;??
  • ????Button?button2;??
  • ????Button?button3;??
  • ????Button?button4;??
  • ????Button?button5;??
  • ??
  • ????DatabaseHelper?mOpenHelper;??
  • ??
  • ????private?static?final?String?DATABASE_NAME?=?"dbForTest.db";??
  • ????private?static?final?int?DATABASE_VERSION?=?1;??
  • ????private?static?final?String?TABLE_NAME?=?"diary";??
  • ????private?static?final?String?TITLE?=?"title";??
  • ????private?static?final?String?BODY?=?"body";??
  • ??
  • ????//建立一個內部類,主要生成一個數據庫???
  • ????private?static?class?DatabaseHelper?extends?SQLiteOpenHelper?{??
  • ??????????
  • ????????DatabaseHelper(Context?context)?{??
  • ????????????super(context,?DATABASE_NAME,?null,?DATABASE_VERSION);??
  • ????????}??
  • ??
  • ????????//在數據庫第一次生成的時候會調用這個方法,一般我們在這個方法里邊生成數據庫表。???
  • ????????@Override??
  • ????????public?void?onCreate(SQLiteDatabase?db)?{??
  • ??
  • ????????????String?sql?=?"CREATE?TABLE?"?+?TABLE_NAME?+?"?("?+?TITLE??
  • ????????????????????+?"?text?not?null,?"?+?BODY?+?"?text?not?null?"?+?");";??
  • ????????????Log.i("haiyang:createDB=",?sql);??
  • ????????????db.execSQL(sql);??
  • ????????}??
  • ??
  • ????????@Override??
  • ????????public?void?onUpgrade(SQLiteDatabase?db,?int?oldVersion,?int?newVersion)?{??
  • ????????}??
  • ????}??
  • ??
  • ????@Override??
  • ????public?void?onCreate(Bundle?savedInstanceState)?{??
  • ????????super.onCreate(savedInstanceState);??
  • ????????setContentView(R.layout.main);??
  • ????????prepareListener();??
  • ????????initLayout();??
  • ????????mOpenHelper?=?new?DatabaseHelper(this);??
  • ??
  • ????}??
  • ??
  • ????private?void?initLayout()?{??
  • ????????button1?=?(Button)?findViewById(R.id.button1);??
  • ????????button1.setOnClickListener(listener1);??
  • ??
  • ????????button2?=?(Button)?findViewById(R.id.button2);??
  • ????????button2.setOnClickListener(listener2);??
  • ??
  • ????????button3?=?(Button)?findViewById(R.id.button3);??
  • ????????button3.setOnClickListener(listener3);??
  • ??????????
  • ????????button4?=?(Button)?findViewById(R.id.button4);??
  • ????????button4.setOnClickListener(listener4);??
  • ??
  • ????????button5?=?(Button)?findViewById(R.id.button5);??
  • ????????button5.setOnClickListener(listener5);??
  • ??
  • ????}??
  • ??
  • ????private?void?prepareListener()?{??
  • ????????listener1?=?new?OnClickListener()?{??
  • ????????????public?void?onClick(View?v)?{??
  • ????????????????CreateTable();??
  • ????????????}??
  • ????????};??
  • ????????listener2?=?new?OnClickListener()?{??
  • ????????????public?void?onClick(View?v)?{??
  • ????????????????dropTable();??
  • ????????????}??
  • ????????};??
  • ????????listener3?=?new?OnClickListener()?{??
  • ????????????public?void?onClick(View?v)?{??
  • ????????????????insertItem();??
  • ????????????}??
  • ????????};??
  • ????????listener4?=?new?OnClickListener()?{??
  • ????????????public?void?onClick(View?v)?{??
  • ????????????????deleteItem();??
  • ????????????}??
  • ????????};??
  • ????????listener5?=?new?OnClickListener()?{??
  • ????????????public?void?onClick(View?v)?{??
  • ????????????????showItems();??
  • ????????????}??
  • ????????};??
  • ????}??
  • ??
  • ????/*?
  • ?????*?重新建立數據表?
  • ?????*/??
  • ????private?void?CreateTable()?{??
  • ????????//mOpenHelper.getWritableDatabase()語句負責得到一個可寫的SQLite數據庫,如果這個數據庫還沒有建立,???
  • ????????//那么mOpenHelper輔助類負責建立這個數據庫。如果數據庫已經建立,那么直接返回一個可寫的數據庫。???
  • ????????SQLiteDatabase?db?=?mOpenHelper.getWritableDatabase();??
  • ????????String?sql?=?"CREATE?TABLE?"?+?TABLE_NAME?+?"?("?+?TITLE??
  • ????????????????+?"?text?not?null,?"?+?BODY?+?"?text?not?null?"?+?");";??
  • ????????Log.i("haiyang:createDB=",?sql);??
  • ??
  • ????????try?{??
  • ????????????db.execSQL("DROP?TABLE?IF?EXISTS?diary");??
  • ????????????db.execSQL(sql);??
  • ????????????setTitle("數據表成功重建");??
  • ????????}?catch?(SQLException?e)?{??
  • ????????????setTitle("數據表重建錯誤");??
  • ????????}??
  • ????}??
  • ??
  • ????/*?
  • ?????*?刪除數據表?
  • ?????*/??
  • ????private?void?dropTable()?{??
  • ????????//mOpenHelper.getWritableDatabase()語句負責得到一個可寫的SQLite數據庫,如果這個數據庫還沒有建立,???
  • ????????//那么mOpenHelper輔助類負責建立這個數據庫。如果數據庫已經建立,那么直接返回一個可寫的數據庫。???
  • ????????SQLiteDatabase?db?=?mOpenHelper.getWritableDatabase();??
  • ????????String?sql?=?"drop?table?"?+?TABLE_NAME;??
  • ????????try?{??
  • ????????????db.execSQL(sql);??
  • ????????????setTitle("數據表成功刪除:"?+?sql);??
  • ????????}?catch?(SQLException?e)?{??
  • ????????????setTitle("數據表刪除錯誤");??
  • ????????}??
  • ????}??
  • ??
  • ????/*?
  • ?????*?插入兩條數據?
  • ?????*/??
  • ????private?void?insertItem()?{??
  • ????????//mOpenHelper.getWritableDatabase()語句負責得到一個可寫的SQLite數據庫,如果這個數據庫還沒有建立,???
  • ????????//那么mOpenHelper輔助類負責建立這個數據庫。如果數據庫已經建立,那么直接返回一個可寫的數據庫。???
  • ????????SQLiteDatabase?db?=?mOpenHelper.getWritableDatabase();??
  • ????????String?sql1?=?"insert?into?"?+?TABLE_NAME?+?"?("?+?TITLE?+?",?"?+?BODY??
  • ????????????????+?")?values('haiyang',?'android的發展真是迅速啊');";??
  • ????????String?sql2?=?"insert?into?"?+?TABLE_NAME?+?"?("?+?TITLE?+?",?"?+?BODY??
  • ????????????????+?")?values('icesky',?'android的發展真是迅速啊');";??
  • ????????try?{??
  • ????????????//?Log.i()會將參數內容打印到日志當中,并且打印級別是Info級別???
  • ????????????//?Android支持5種打印級別,分別是VerboseDebugInfoWarningError,當然我們在程序當中一般用到的是Info級別???
  • ????????????Log.i("haiyang:sql1=",?sql1);??
  • ????????????Log.i("haiyang:sql2=",?sql2);??
  • ????????????db.execSQL(sql1);??
  • ????????????db.execSQL(sql2);??
  • ????????????setTitle("插入兩條數據成功");??
  • ????????}?catch?(SQLException?e)?{??
  • ????????????setTitle("插入兩條數據失敗");??
  • ????????}??
  • ????}??
  • ??
  • ????/*?
  • ?????*?刪除其中的一條數據?
  • ?????*/??
  • ????private?void?deleteItem()?{??
  • ????????try?{??
  • ????????????//mOpenHelper.getWritableDatabase()語句負責得到一個可寫的SQLite數據庫,如果這個數據庫還沒有建立,???
  • ????????????//那么mOpenHelper輔助類負責建立這個數據庫。如果數據庫已經建立,那么直接返回一個可寫的數據庫。???
  • ????????????SQLiteDatabase?db?=?mOpenHelper.getWritableDatabase();??
  • ????????????//第一個參數是數據庫表名,在這里是TABLE_NAME,也就是diary????
  • ????????????//第二個參數,相當于SQL語句當中的where部分,也就是描述了刪除的條件。???
  • ????????????//如果在第二個參數當中有符號,那么第三個參數中的字符串會依次替換在第二個參數當中出現的符號。????
  • ????????????db.delete(TABLE_NAME,?"?title?=?'haiyang'",?null);??
  • ????????????setTitle("刪除titlehaiyang的一條記錄");??
  • ????????}?catch?(SQLException?e)?{??
  • ??
  • ????????}??
  • ??
  • ????}??
  • ??
  • ????/*?
  • ?????*?在屏幕的title區域顯示當前數據表當中的數據的條數。?
  • ?????*/??
  • ????/*?
  • ?????*?Cursor?cur?=?db.query(TABLE_NAME,?col,?null,?null,?null,?null,?null)語句將查詢到的數據放到一個Cursor?當中。?
  • ????????這個Cursor里邊封裝了這個數據表TABLE_NAME當中的所有條列。??
  • ????????query()方法相當的有用,在這里我們簡單地講一下。?
  • ????????????第一個參數是數據庫里邊表的名字,比如在我們這個例子,表的名字就是TABLE_NAME,也就是"diary"?
  • ????????????第二個字段是我們想要返回數據包含的列的信息。在這個例子當中我們想要得到的列有titlebody。我們把這兩個列的名字放到字符串數組里邊來。?
  • ????????????第三個參數為selection,相當于SQL語句的where部分,如果想返回所有的數據,那么就直接置為null?
  • ????????????第四個參數為selectionArgs。在selection部分,你有可能用到“?”,那么在selectionArgs定義的字符串會代替selection中的“?”?
  • ????????????第五個參數為groupBy。定義查詢出來的數據是否分組,如果為null則說明不用分組。?
  • ????????????第六個參數為having?,相當于SQL語句當中的having部分。?
  • ????????????第七個參數為orderBy,來描述我們期望的返回值是否需要排序,如果設置為null則說明不需要排序。?
  • ?????*/??
  • ??????
  • ????private?void?showItems()?{??
  • ??
  • ????????SQLiteDatabase?db?=?mOpenHelper.getReadableDatabase();??
  • ????????String?col[]?=?{?TITLE,?BODY?};??
  • ????????//查詢數據???
  • ????????Cursor?cur?=?db.query(TABLE_NAME,?col,?null,?null,?null,?null,?null);??
  • ????????Integer?num?=?cur.getCount();??
  • ????????setTitle(Integer.toString(num)?+?"?條記錄");??
  • ????}??
  • } ??cop?
  • 四.內容提供器(Content provider)方式

    ?????在Android的設計“哲學”里是鼓勵開發者使用內部類的,這樣不但使用方便,而且執行效率也高。

    ??????1.什么是ContentProvider?
    ??????數據在Android當中是私有的,當然這些數據包括文件數據和數據庫數據以及一些其他類型的數據。難道兩個程序之間就沒有辦法對于數據進行交換?解決這個問題主要靠ContentProvider。
    ?一個Content Provider類實現了一組標準的方法接口,從而能夠讓其他的應用保存或讀取此Content Provider的各種數據類型。也就是說,一個程序可以通過實現一個ContentProvider的抽象接口將自己的數據暴露出去。外界根本看不到,也不用看到這個應用暴露的數據在應用當中是如何存儲的,或者是用數據庫存儲還是用文件存儲,還是通過網上獲得,這些一切都不重要,重要的是外界可以通過這一套標準及統一的接口和程序里的數據打交道,可以讀取程序的數據,也可以刪除程序的數據,當然,中間也會涉及一些權限的問題。
    ????? 下邊列舉一些較常見的接口,這些接口如下所示。
    ??????query(Uriuri, String[] projection, String selection, String[] selectionArgs,StringsortOrder):通過Uri進行查詢,返回一個Cursor。?
    ????? insert(Uriurl, ContentValues values):將一組數據插入到Uri 指定的地方。?
    ??????update(Uriuri, ContentValues values, String where, String[] selectionArgs):更新Uri指定位置的數據。?
    ????? delete(Uriurl, String where, String[] selectionArgs):刪除指定Uri并且符合一定條件的數據。

    ??????2.什么是ContentResolver?
    ????? 外界的程序通過ContentResolver接口可以訪問ContentProvider提供的數據,在Activity當中通過getContentResolver()可以得到當前應用的ContentResolver實例。
    ????? ContentResolver提供的接口和ContentProvider中需要實現的接口對應,主要有以下幾個。?
    ????? query(Uriuri, String[] projection, String selection, String[] selectionArgs,StringsortOrder):通過Uri進行查詢,返回一個Cursor。
    ????? insert(Uriurl, ContentValues values):將一組數據插入到Uri 指定的地方。
    ????? update(Uriuri, ContentValues values, String where, String[] selectionArgs):更新Uri指定位置的數據。
    ????? delete(Uriurl, String where, String[] selectionArgs):刪除指定Uri并且符合一定條件的數據。

    ?????3.ContentProvider和ContentResolver中用到的Uri?
    ????? 在ContentProvider和ContentResolver當中用到了Uri的形式通常有兩種,一種是指定全部數據,另一種是指定某個ID的數據。
    ???? 我們看下面的例子。?
    ?????????content://contacts/people/? 這個Uri指定的就是全部的聯系人數據。
    ?????????content://contacts/people/1 這個Uri指定的是ID為1的聯系人的數據。?

    ???? 在上邊兩個類中用到的Uri一般由3部分組成。
    ???????? 第一部分是:"content://"。
    ???????? 第二部分是要獲得數據的一個字符串片段。?
    ??????? 最后就是ID(如果沒有指定ID,那么表示返回全部)。

    ???? 由于URI通常比較長,而且有時候容易出錯,且難以理解。所以,在Android當中定義了一些輔助類,并且定義了一些常量來代替這些長字符串的使用,例如下邊的代碼:?
    ???? Contacts.People.CONTENT_URI (聯系人的URI)。
    ???? 1)實現的功能

    ????????在這個例子里邊,首先在系統的聯系人應用當中插入一些聯系人信息,然后把這些聯系人的名字和電話再顯示出來

    ???? 2)實現方法

    ????

    view plaincopy to clipboard

  • package?com.contentProvider;??
  • ??
  • import?android.app.ListActivity;??
  • import?android.database.Cursor;??
  • import?android.os.Bundle;??
  • import?android.provider.Contacts.Phones;??
  • import?android.widget.ListAdapter;??
  • import?android.widget.SimpleCursorAdapter;??
  • ??
  • public?class?ContentProviderDemo?extends?ListActivity?{??
  • ??????
  • ????protected?void?onCreate(Bundle?savedInstanceState)?{??
  • ????????super.onCreate(savedInstanceState);??
  • ????????//getContentResolver()方法得到應用的ContentResolver實例。???
  • ????????//?queryPhones.CONTENT_URI,?null,?null,?null,?null)。它是ContentResolver里的方法,負責查詢所有聯系人,并返回一個Cursor。這個方法參數比較多,每個參數的具體含義如下。???
  • ????????//·??第一個參數為Uri,在這個例子里邊這個Uri是聯系人的Uri???
  • ????????//·??第二個參數是一個字符串的數組,數組里邊的每一個字符串都是數據表中某一列的名字,它指定返回數據表中那些列的值。???
  • ????????//·??第三個參數相當于SQL語句的where部分,描述哪些值是我們需要的。???
  • ????????//·??第四個參數是一個字符串數組,它里邊的值依次代替在第三個參數中出現的“?”符號。???
  • ????????//·??第五個參數指定了排序的方式。???
  • ????????Cursor?c?=?getContentResolver().query(Phones.CONTENT_URI,?null,?null,?null,?null);??
  • ????????startManagingCursor(c);?//讓系統來管理生成的Cursor???
  • ????????ListAdapter?adapter?=?new?SimpleCursorAdapter(??
  • ????????????????this,??
  • ????????????????android.R.layout.simple_list_item_2,???
  • ????????????????c,???
  • ????????????????new?String[]?{?Phones.NAME,?Phones.NUMBER?},???
  • ????????????????new?int[]?{?android.R.id.text1,?android.R.id.text2?});??
  • ????????setListAdapter(adapter);?//ListViewSimpleCursorAdapter進行綁定。???
  • ????}??
  • ??????
  • } ?
  • 五. 網絡存儲方式

    ?

    ?1.例子介紹
    ?????????通過郵政編碼查詢該地區的天氣預報,以POST發送的方式發送請求到webservicex.net站點,訪問WebService.webservicex.net站點上提供查詢天氣預報的服務,具體信息請參考其WSDL文檔,網址為:
    http://www.webservicex.net/WeatherForecast.asmx?WSDL
    輸入:美國某個城市的郵政編碼。?
    輸出:該郵政編碼對應城市的天氣預報。
    2.實現步驟如下
    (1)如果需要訪問外部網絡,則需要在AndroidManifest.xml文件中加入如下代碼申請權限許可:?
    <!-- Permissions -->?
    <uses-permission Android:name="Android.permission.INTERNET"/>?
    (2)以HTTP POST的方式發送(注意:SERVER_URL并不是指WSDL的URL,而是服務本身的URL)。實現的代碼如下所示:
    private static final String SERVER_URL = "http://www.webservicex.net/WeatherForecast. asmx/GetWeatherByZipCode"; //定義需要獲取的內容來源地址
    HttpPost request = new HttpPost(SERVER_URL); //根據內容來源地址創建一個Http請求
    // 添加一個變量?
    List <NameValuePair> params = new ArrayList<NameValuePair>();?
    // 設置一個華盛頓區號
    params.add(new BasicNameValuePair("ZipCode","200120"));? //添加必須的參數
    request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); //設置參數的編碼
    try {?
    HttpResponse httpResponse = new DefaultHttpClient().execute(request); //發送請求并獲取反饋
    // 解析返回的內容
    if(httpResponse.getStatusLine().getStatusCode() != 404)??
    {?
    ? String result = EntityUtils.toString(httpResponse.getEntity());?
    ? Log.d(LOG_TAG, result);?
    }?
    } catch (Exception e) {?
    Log.e(LOG_TAG, e.getMessage());?
    }?
    ?代碼解釋:
    如上代碼使用Http從webservicex獲取ZipCode為“200120”(美國WASHINGTON D.C)的內容,其返回的內容如下:
    <WeatherForecasts xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http: //www.w3.org/2001/XMLSchema-instance"xmlns="http://www.webservicex.net">?
    ? <Latitude>38.97571</Latitude>?
    ? <Longitude>77.02825</Longitude>?
    ? <AllocationFactor>0.024849</AllocationFactor>?
    ? <FipsCode>11</FipsCode>?
    ? <PlaceName>WASHINGTON</PlaceName>?
    ? <StateCode>DC</StateCode>?
    ? <Details>?
    ??? <WeatherData>?
    ????? <Day>Saturday, April 25,2009</Day>?
    ?????<WeatherImage>http://forecast.weather.gov/images/wtf/sct.jpg</WeatherImage>?
    ?????<MaxTemperatureF>88</MaxTemperatureF>?
    ?????<MinTemperatureF>57</MinTemperatureF>?
    ????? <MaxTemperatureC>31</MaxTemperatureC>?
    ?????<MinTemperatureC>14</MinTemperatureC>?
    ??? </WeatherData>?
    ??? <WeatherData>?
    ????? <Day>Sunday, April 26,2009</Day>?
    ?????<WeatherImage>http://forecast.weather.gov/images/wtf/few.jpg</WeatherImage>?
    ????? <MaxTemperatureF>89</MaxTemperatureF>?
    ?????<MinTemperatureF>60</MinTemperatureF>?
    ?????<MaxTemperatureC>32</MaxTemperatureC>?
    ?????<MinTemperatureC>16</MinTemperatureC>?
    ??? </WeatherData>

    ? </Details>?
    </WeatherForecasts>

    ?

    總結

    以上是生活随笔為你收集整理的安卓四大组件的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    天天做天天爱夜夜爽 | 久久精品久久精品久久精品 | 免费看黄的视频 | 亚洲色综合 | 国产精品久久久久久久毛片 | 久久精品91久久久久久再现 | 久久99欧美 | 在线观看av中文字幕 | 99免费在线播放99久久免费 | 91精品一区二区在线观看 | 99一区二区三区 | 91久久久久久久一区二区 | 中文字幕一区av | 九九视频网 | h网站免费在线观看 | 99久久婷婷国产综合精品 | 日韩精品一区在线播放 | 国产精品v欧美精品v日韩 | 99免费视频 | a特级毛片 | 婷婷色中文网 | 欧美性做爰猛烈叫床潮 | 欧美日韩性生活 | 久草视频国产 | 欧美日韩精品在线观看视频 | 中文字幕成人一区 | 五月天电影免费在线观看一区 | 国产成人中文字幕 | 国产在线黄色 | 黄色毛片视频免费观看中文 | av免费观看网址 | 欧美另类v | 亚洲黄色一级大片 | 久亚洲 | 国产日产在线观看 | 麻豆视频在线观看免费 | 国产精品1区2区在线观看 | 亚洲欧美日韩精品久久奇米一区 | aaa黄色毛片 | 免费黄色在线播放 | 成人av手机在线 | 狠狠色噜噜狠狠狠狠2022 | 欧美孕妇视频 | 亚洲国产精品小视频 | 国产福利一区二区在线 | 国产高清免费在线观看 | 免费人做人爱www的视 | 欧美一二三区在线播放 | 丁香激情综合国产 | 91香蕉嫩草| 精品久久久久久久久久久久久久久久 | 久久国语露脸国产精品电影 | 97小视频| 欧美色插 | 国产成人精品久久久久蜜臀 | 高清av在线| 成年人在线免费看视频 | 日韩av资源站 | 夜夜躁狠狠躁 | 欧美作爱视频 | 婷婷av综合 | 97视频精品 | 欧美性极品xxxx娇小 | 成人精品国产免费网站 | 国产精品系列在线播放 | 国产成人资源 | 一级黄网 | 天天玩天天操天天射 | 草久热| 中文字幕中文字幕在线中文字幕三区 | 福利视频第一页 | 99免在线观看免费视频高清 | 天天摸天天干天天操天天射 | 91黄色在线观看 | 色综久久 | 欧美激情第一页xxx 午夜性福利 | 久久久久这里只有精品 | 啪啪免费视频网站 | 欧洲精品码一区二区三区免费看 | 综合网在线视频 | 免费看污的网站 | 国内精品久久久久影院男同志 | 日韩精品免费在线观看 | 免费看的黄色片 | 国产中文字幕免费 | 黄色日本免费 | 日日干天天爽 | 国产一区网 | 国产五月色婷婷六月丁香视频 | 国产99区 | 黄色小说在线观看视频 | 国产精品成人国产乱一区 | 国产视频一区二区在线观看 | 久久久久在线视频 | 精品一区91 | 波多野结衣日韩 | 看国产黄色大片 | 久久男人中文字幕资源站 | 国产人成在线视频 | 国产精品v欧美精品 | 在线观看视频你懂得 | 午夜 免费 | 国产不卡在线视频 | 久操视频在线 | 俺要去色综合狠狠 | 成人av电影免费在线播放 | 中文字幕在线一二 | 一区二区三区免费网站 | 欧美一级片在线免费观看 | 国产美女精品视频 | 婷婷丁香自拍 | 成人av在线观 | 中文一区在线观看 | 日本xxxx.com| 国产网站色 | 成人av电影在线观看 | 一级黄色片网站 | 二区三区在线 | 亚洲国产一区二区精品专区 | 精品国产电影一区二区 | 国产精品一级在线 | 最新极品jizzhd欧美 | 成人理论在线观看 | 在线免费观看麻豆视频 | 亚洲精品国产精品乱码在线观看 | 韩国精品视频在线观看 | 免费观看国产成人 | 97超碰成人在线 | 99热在线精品观看 | 成人在线视频你懂的 | 天天射天天操天天干 | 91精品视频导航 | 一区二区三区电影大全 | 精品一区二区久久久久久久网站 | 欧美黄色成人 | 99色国产 | 国产二区电影 | 91麻豆精品国产91久久久更新时间 | 国产日韩精品在线 | 国产精品美女久久久久久久久久久 | 久久66热这里只有精品 | 麻豆传媒在线免费看 | 久久99精品国产麻豆婷婷 | 久久精品系列 | wwwwww黄| 五月婷在线观看 | 国产1区2| 国产成人精品电影久久久 | 精品久久久久国产免费第一页 | 中文字幕二区在线观看 | 夜夜夜 | 性色av免费观看 | 五月婷香蕉久色在线看 | 成人精品国产免费网站 | av电影在线免费 | 97在线视频网站 | 美女黄久久 | 国产午夜激情视频 | 另类五月激情 | 亚洲国产中文字幕在线观看 | 日韩资源视频 | 精品国产一区二区三区四区vr | 91看片淫黄大片一级在线观看 | 毛片久久久 | av中文在线观看 | 九九免费在线观看 | 国产h在线播放 | 亚洲黄色一级大片 | 97视频在线观看网址 | 亚洲欧美视频在线播放 | 三级黄色理论片 | 久久激情视频网 | 91精品免费在线观看 | 久草精品视频在线看网站免费 | 亚洲九九影院 | 看片网站黄 | 色视频成人在线观看免 | 亚洲精品久久激情国产片 | 日本一区二区三区免费看 | 97在线精品国自产拍中文 | 操操操干干干 | 久久国产精品第一页 | 黄色片视频在线观看 | 亚洲播放一区 | 精品欧美一区二区精品久久 | 黄色大片日本免费大片 | 久久综合久久八八 | 少妇激情久久 | 精品在线视频一区 | 久久久久高清 | 91亚洲精品乱码久久久久久蜜桃 | 麻豆视频免费网站 | 九九热国产视频 | 欧美日韩在线视频一区 | www.五月激情.com | 日本中文字幕在线观看 | 国产精品久久片 | 亚洲无在线 | 欧美激情视频一二三区 | 美女av在线免费 | 欧美性爽爽 | 91精品国产一区二区在线观看 | 久久综合九色综合欧美狠狠 | 亚洲成人资源在线观看 | 五月婷婷综合久久 | 亚洲精品国偷拍自产在线观看 | 最新中文字幕 | 欧美性猛片, | 久久视频热| 又黄又爽又刺激的视频 | 日韩电影在线观看一区二区三区 | 亚洲动漫在线观看 | 在线视频日韩一区 | 久草综合视频 | 中文字幕中文中文字幕 | 亚洲精品国产日韩 | 一区二区不卡高清 | 国产69精品久久久久99尤 | 日韩专区中文字幕 | 色婷婷综合五月 | 就要干b | 少妇高潮冒白浆 | 日韩在线免费高清视频 | 麻豆久久久久久久 | 97国产精品亚洲精品 | 成人久久久久久久久 | 国产日韩欧美在线播放 | 黄色电影小说 | 亚洲视频在线免费观看 | 成人免费视频网站在线观看 | 国产免费成人av | 一区二区三区在线免费观看视频 | 日本不卡一区二区三区在线观看 | 国产又粗又猛又爽 | 成人毛片一区 | 亚洲一区 av| 国产成人精品一区二区三区 | 四虎国产精品永久在线国在线 | 日韩一二三区不卡 | av天天在线观看 | 天天插天天射 | 久久久国产精品电影 | 伊人开心激情 | 98超碰在线观看 | 日韩乱理| 69成人在线 | 国产精品99久久久久人中文网介绍 | 国产精品1024 | 97福利| 久久婷婷亚洲 | 国产精品露脸在线 | 色吊丝在线永久观看最新版本 | 国产一级片一区二区三区 | 欧美资源在线观看 | 99热在线精品观看 | 日日麻批40分钟视频免费观看 | 国产精华国产精品 | 在线看片成人 | 91久久丝袜国产露脸动漫 | 涩涩爱夜夜爱 | 日韩黄在线观看 | 99视屏| 久久久官网 | 操操操av| 久久尤物电影视频在线观看 | 久草视频在线资源 | 在线观看黄网站 | 久久国产精品小视频 | 免费看十八岁美女 | 国产黄色片在线免费观看 | 久久久电影 | 欧美成人tv | 黄色av一级 | 久久超 | 人人爽人人爽人人爽学生一级 | 国产免费精彩视频 | 99热九九这里只有精品10 | 成人啪啪18免费游戏链接 | 夜夜骑日日 | 91麻豆文化传媒在线观看 | 黄色免费国产 | 综合视频在线 | 国产精品a成v人在线播放 | 国产剧情一区二区 | 婷婷激情综合 | 成人性生交视频 | 久久精品亚洲一区二区三区观看模式 | 99re久久资源最新地址 | 国产资源站 | 黄色网址中文字幕 | 久久久免费在线观看 | 少妇高潮流白浆在线观看 | 久久综合狠狠综合 | 中文字幕有码在线观看 | 国产在线自 | 99久久精品国产网站 | 黄色片免费在线 | 91福利影院在线观看 | 久久人视频 | av中文字幕网 | 免费观看黄色12片一级视频 | 日韩精品不卡在线 | 97视频在线 | 国产传媒中文字幕 | 国产尤物在线视频 | 天天射天天干天天 | 精品一区二区三区久久久 | 久久久网页 | 成年人免费av网站 | 色网址99 | 美女网站视频免费黄 | 国产在线色视频 | 久久久精品二区 | 亚洲日本一区二区在线 | 97影视| 久久夜色精品国产欧美乱 | 中文字幕在线观看免费高清电影 | 亚洲欧美综合精品久久成人 | 午夜视频一区二区三区 | 蜜臀av夜夜澡人人爽人人 | 免费国产在线精品 | 久久亚洲美女 | 中文字幕欧美三区 | 亚洲婷婷综合色高清在线 | 91香蕉视频在线下载 | 久久视频这里有久久精品视频11 | 久久九九久久 | 99精品视频免费观看视频 | 九九热在线视频 | 国产成人av电影在线观看 | 又湿又紧又大又爽a视频国产 | 小草av在线播放 | 久久激五月天综合精品 | 9草在线| 久久免费a | 久艹在线播放 | 国产精品高潮呻吟久久久久 | 国产永久免费 | 91丨九色丨国产丨porny精品 | 亚洲精品国偷自产在线91正片 | 国产一级小视频 | 国产精品久久久免费 | 国产精品一区二区av日韩在线 | 欧美激情xxxx| av不卡在线看 | 992tv人人网tv亚洲精品 | 成人黄色av免费在线观看 | 国产精品久久99综合免费观看尤物 | 免费精品视频在线观看 | 91传媒免费在线观看 | 992tv在线成人免费观看 | 久久精品直播 | 亚洲国产免费 | 日韩欧美视频免费在线观看 | 欧美与欧洲交xxxx免费观看 | 久久99精品热在线观看 | 91免费看黄色 | 天天爱天天射天天干天天 | 99精品视频一区二区 | 欧美日一级片 | 国产艹b视频 | 欧美国产一区在线 | 久久久久久久久毛片精品 | 亚洲综合成人婷婷小说 | 少妇激情久久 | 天天操天天舔天天干 | 在线免费黄| 中文字幕a∨在线乱码免费看 | 黄网站app在线观看免费视频 | 五月天婷亚洲天综合网鲁鲁鲁 | 日韩电影中文字幕在线观看 | 美女视频黄在线观看 | 中文字幕制服丝袜av久久 | 蜜臀av夜夜澡人人爽人人桃色 | 成人av电影免费观看 | 69国产成人综合久久精品欧美 | 免费在线观看国产黄 | 日本精品小视频 | 免费午夜在线视频 | 激情网五月婷婷 | 最近日本字幕mv免费观看在线 | 9在线观看免费高清完整版在线观看明 | 成年人免费观看国产 | 国产午夜影院 | 国产精品欧美一区二区 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 成人一级片免费看 | 热久久电影 | 色网av| 免费看久久久 | 亚洲精品一区二区在线观看 | 久久久久伊人 | 婷婷五月情 | 黄色毛片在线 | 国产黄色精品在线观看 | 亚洲狠狠婷婷 | 97精品国产97久久久久久久久久久久 | 午夜精品视频福利 | 欧美日韩性视频在线 | 狠狠色狠狠色终合网 | 日韩动漫免费观看高清完整版在线观看 | 97精品免费视频 | 六月丁香激情网 | 久久免费毛片 | 久久女同性恋中文字幕 | 国产精品第一页在线观看 | 五月天色综合 | a亚洲视频 | 日韩伦理片一区二区三区 | 欧美精品久久久久久久久老牛影院 | 极品久久久 | 97在线观看视频 | 国产精品1区2区3区 久久免费视频7 | 国产精品999久久久 久产久精国产品 | 国产麻豆剧传媒免费观看 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 麻豆成人精品视频 | 亚洲第一中文字幕 | 日韩精品视频免费专区在线播放 | 欧美日韩一级视频 | 二区三区视频 | 欧美国产日韩激情 | 欧美日韩中文字幕综合视频 | 亚洲欧美成人网 | 黄色免费网站大全 | 亚洲女人天堂成人av在线 | 色婷婷激情四射 | 天天色天天综合网 | 中文字幕在线观看一区二区 | 高清av免费观看 | 亚洲小视频在线 | 国产精品白浆 | 九九av| 91精品国产91久久久久 | 2018亚洲男人天堂 | 久久99免费观看 | 国产精品美女999 | 国产亚洲综合在线 | 国产精品久久久久9999 | www.888av| 久久久久久久免费观看 | 日日干综合 | 亚洲精品国产电影 | 精品国产理论 | 狠狠亚洲 | 丰满少妇在线观看资源站 | 美女黄色网在线播放 | 波多野结衣资源 | 日韩免费看片 | 天堂中文在线视频 | 国产一区二区三区免费在线观看 | 免费亚洲黄色 | 欧美一区二区三区免费看 | 在线观看av不卡 | 国产超碰在线观看 | 久久久国产高清 | 久久精品2 | 国产精品人人做人人爽人人添 | 精品免费观看 | 午夜视频久久久 | zzijzzij亚洲成熟少妇 | av在线播放观看 | 免费涩涩网站 | 免费在线观看成人av | 久久久国产精品免费 | 丁香一区二区 | 麻花传媒mv免费观看 | 天堂av在线中文在线 | 视频一区在线免费观看 | 日韩免费一区二区 | 欧美日韩另类在线观看 | 狠狠久久| 久久久久久久久久毛片 | 欧美成人黄色片 | 中文字幕在线视频免费播放 | 久日视频 | 日韩中字在线观看 | 色操插 | 黄色91在线观看 | 黄色成人影院 | 国产精品入口麻豆 | 成人黄色av网站 | 黄色av一区二区三区 | 国产一级视频在线 | 91在线中文 | 国产精品国产亚洲精品看不卡15 | 免费精品视频在线观看 | 中文字幕高清免费日韩视频在线 | 国产免费人成xvideos视频 | 亚洲特级毛片 | 国产在线观看二区 | 国产精品18久久久久久久网站 | 亚洲精品大片www | 婷婷久久丁香 | 97综合网 | 插婷婷| 久久综合网色—综合色88 | 国产精品久久久久久影院 | 日日夜夜免费精品视频 | adn—256中文在线观看 | 国产一级在线播放 | 成片视频免费观看 | 欧美日韩p片 | 97人人模人人爽人人喊中文字 | 91资源在线播放 | a一片一级 | 黄色网址a | 操操日| 亚洲日b视频 | 日本午夜免费福利视频 | 国产精品一区二区视频 | 久久国产精品色av免费看 | 香蕉日日 | 久久精品波多野结衣 | 久久综合狠狠综合久久狠狠色综合 | 免费97视频 | 少妇bbb | www激情久久 | 亚洲成人精品国产 | 在线精品视频免费播放 | 国产在线播放观看 | 国产不卡一区二区视频 | 天天人人综合 | 欧美va日韩va | 91视频xxxx | 97在线免费| 国产婷婷精品 | 久久久精品 一区二区三区 国产99视频在线观看 | 99热.com | 四虎免费在线观看视频 | 五月激情在线 | 91久久久久久国产精品 | 五月激情久久 | 91九色免费视频 | 欧美激情在线网站 | 国产在线精品区 | 丁香六月五月婷婷 | 欧美成人在线免费 | 黄色小网站在线 | av网站免费线看精品 | 日韩大片在线免费观看 | 少妇性bbb搡bbb爽爽爽欧美 | 成人毛片久久 | 久久九九国产精品 | 日韩午夜电影 | 精品久久久成人 | a天堂免费| 97人人网 | 久久久久久草 | 91理论电影 | 日韩精品久久久久久久电影竹菊 | 成人黄色片在线播放 | 精品999 | 精品一区二区在线观看 | 精品99999 | 国产一区二区三精品久久久无广告 | 久久久久久欧美二区电影网 | 五月婷婷毛片 | 欧美日韩在线播放一区 | 亚洲一区美女视频在线观看免费 | 欧美日韩国产二区 | 国产精品2018 | 中文字幕在线观看亚洲 | 一级免费黄视频 | 久久亚洲综合色 | 色欧美日韩 | 欧美a级免费视频 | av中文字幕亚洲 | 国产伦精品一区二区三区在线 | 97成人在线观看视频 | 一区二区三区四区久久 | 日韩av免费大片 | 天天干,天天射,天天操,天天摸 | 国产午夜精品一区 | 国产黄色片免费看 | 九九免费精品 | 在线成人观看 | 人人舔人人爽 | 亚洲丝袜一区二区 | 国产特级毛片aaaaaa | 国产精品高潮在线观看 | 九九热免费在线观看 | 天天干天天拍 | 精品一二三四视频 | 色国产精品一区在线观看 | 欧美日韩国产二区三区 | 色婷婷狠狠18 | 99久久精品免费一区 | 亚洲国产成人在线 | 亚洲第一久久久 | 亚洲天堂精品视频在线观看 | 婷婷综合久久 | 亚洲黄色在线播放 | 最近中文字幕视频网 | 欧美日韩一区二区三区视频 | 国产黄av | 亚洲精品国精品久久99热 | 四虎影视成人永久免费观看亚洲欧美 | 国产成人久久久久 | 国产一级免费视频 | 色全色在线资源网 | 永久免费毛片在线观看 | 97视频免费播放 | 亚洲电影久久久 | 91资源在线免费观看 | 日韩欧美一区二区在线观看 | 久草精品网 | a成人v| 欧美最猛性xxxx | 91麻豆精品国产91久久久久久 | 免费看片成人 | 亚洲综合狠狠干 | 日韩在线一级 | 欧美日韩视频在线播放 | 亚洲精品一区二区18漫画 | 精品国产自在精品国产精野外直播 | 99精品免费久久久久久日本 | 久久99国产精品久久99 | 欧美午夜理伦三级在线观看 | 亚洲精品国久久99热 | 国产精品专区在线观看 | 国产午夜一区 | 天天干天天插伊人网 | 国产成人综合在线观看 | 久久精品91久久久久久再现 | 国产精品一区专区欧美日韩 | .精品久久久麻豆国产精品 亚洲va欧美 | 国产精品精品久久久久久 | 五月天视频网 | 国产高清视频在线观看 | 久久人人97超碰精品888 | 亚洲综合情 | 99热最新地址 | 香蕉一区 | 麻豆视频在线观看免费 | 日韩中文字幕视频在线观看 | 国产成人精品一区二区三区 | 亚洲伦理精品 | 成人91免费视频 | 久久久久日本精品一区二区三区 | 97夜夜澡人人双人人人喊 | 黄色av大片 | 国产成人一区二区三区免费看 | 成人午夜黄色 | 69国产精品视频免费观看 | 日韩av一区二区在线播放 | 精品久久久免费 | 综合国产在线观看 | 2023年中文无字幕文字 | 国产一级二级三级在线观看 | 日韩免费在线网站 | 日韩一区二区三区不卡 | 免费久久久 | 91免费观看国产 | 国产精品一区二区三区视频免费 | 天天插天天 | 99在线免费视频 | 亚洲综合激情网 | 波多野结衣视频一区 | 精品国产乱码久久久久久天美 | 中文字幕文字幕一区二区 | 国产精品视频区 | 91久久黄色| 国产一区福利 | 精品视频9999 | 免费午夜av | 玖草在线观看 | 天天射天| 日韩在线看片 | 国内精品久久久久久久久久久久 | 欧美一二区视频 | 国产丝袜美腿在线 | 激情综合电影网 | 伊人久久国产 | 欧美日韩高清国产 | 免费网站观看www在线观看 | 99精品一区二区三区 | 狠狠干婷婷 | 最新av在线网站 | 久视频在线播放 | 国产一区电影在线观看 | 三级视频片 | 国产亚洲精品女人久久久久久 | 国产精品免费一区二区三区在线观看 | 欧美最新大片在线看 | 色综合小说 | 一级黄色免费网站 | 操操操日日日干干干 | 国内外成人在线 | 在线观看日本高清mv视频 | 国产精品一区二区在线观看免费 | 九九久久久久久久久激情 | 又色又爽又黄高潮的免费视频 | 91人人干 | 久久成人国产精品 | 亚洲电影av在线 | 香蕉在线视频观看 | 91av视频在线观看免费 | 亚洲欧美日韩一区二区三区在线观看 | 亚洲一级片在线看 | 99热这里有精品 | 久久你懂的| 久草在线高清 | 81国产精品久久久久久久久久 | 啪啪资源 | 天堂av免费观看 | 日本精品久久久久 | 婷婷av色综合 | 成人试看120秒 | 国产色视频一区二区三区qq号 | 国产成人精品一区二区三区福利 | 五月天高清欧美mv | 成人va在线观看 | 国产精品精品 | 欧美夫妻生活视频 | 国产在线观| 日日日日干 | 久草免费在线视频 | 亚洲第一中文字幕 | 91精品国自产在线观看 | 91色网址| 青青河边草免费直播 | 亚洲精品视频在线看 | 国产成人61精品免费看片 | av超碰在线 | 久久狠狠婷婷 | 亚洲午夜电影网 | 9999亚洲| 欧美日韩精品在线免费观看 | 久久国产午夜精品理论片最新版本 | 亚洲精品国产电影 | 成人福利av| 在线播放 日韩专区 | 久久观看最新视频 | 日韩免费在线观看视频 | 国产精品中文字幕在线 | 国产资源 | 九色免费视频 | 久久精品在线免费观看 | 正在播放一区二区 | 狠色狠色综合久久 | 欧美成人精品三级在线观看播放 | 日韩av电影中文字幕在线观看 | 91中文字幕永久在线 | 久久久免费看视频 | 人人干人人做 | 日韩av影视 | 久久综合九色99 | 亚洲日韩中文字幕在线播放 | 亚洲黄色免费网站 | 久久av在线 | 亚州视频在线 | 中文字幕一区二区三区四区视频 | 公与妇乱理三级xxx 在线观看视频在线观看 | 精品国偷自产国产一区 | 99re8这里有精品热视频免费 | 91视频最新网址 | 天天射天天爽 | 黄色毛片观看 | 天堂中文在线视频 | 一区二区三区中文字幕在线 | 亚洲最新在线视频 | 国产中文在线观看 | 久久综合干 | 中文字幕一区av | 一级a性色生活片久久毛片波多野 | 青草视频在线 | 国模精品一区二区三区 | 在线看国产视频 | 99精品视频精品精品视频 | 中文一二区 | 国产在线视频资源 | 婷婷色伊人 | 亚洲综合视频在线播放 | 麻豆视频在线免费观看 | 66av99精品福利视频在线 | 美女在线黄 | www,黄视频 | 99精品视频在线观看免费 | 九九电影在线 | 日韩一区二区三区高清在线观看 | 亚洲少妇自拍 | 91成人网在线观看 | 亚洲精品乱码久久久久久按摩 | 日韩黄色免费看 | 黄色av电影在线 | 久久免费视频在线观看30 | 久草在线最新免费 | 久久国产精品久久精品国产演员表 | 在线观看色网 | 91九色国产视频 | 91字幕| 国产精品久久久视频 | 黄色特一级片 | 亚洲乱码一区 | 视频在线观看国产 | 国产成人三级三级三级97 | 久久国色夜色精品国产 | 亚洲精品美女在线观看播放 | 久久免费视频网站 | 91在线观看高清 | 福利一区二区在线 | 免费观看www视频 | 免费观看av | 91视频在线免费观看 | 国产精品午夜av | 91福利区一区二区三区 | japanesexxxhd奶水 国产一区二区在线免费观看 | 91成人短视频在线观看 | 天天射天天艹 | 亚洲免费在线播放视频 | 怡红院av久久久久久久 | av久久在线 | 99综合影院在线 | 91视频91蝌蚪 | 久久国精品 | 免费毛片一区二区三区久久久 | 九九热只有这里有精品 | 久久草网站 | 国产精品久久久久久久久久不蜜月 | 五月综合婷 | 国产综合小视频 | 久久中文精品视频 | 天天爱天天草 | 婷婷丁香花五月天 | 一区av在线播放 | av电影久久| 国产成人久久精品77777综合 | 国产精品观看在线亚洲人成网 | 中文 一区二区 | 久草在线视频免费资源观看 | 中文字幕成人在线 | 国产成人av在线影院 | 国产成人av免费在线观看 | 国产免费激情久久 | 精品福利在线观看 | 在线视频 成人 | 91视频在线观看下载 | 激情欧美国产 | 日韩av播放在线 | 国产精品一区二区三区99 | 久草视频免费在线观看 | 99在线视频播放 | 三级大片网站 | 久久短视频 | 中文字幕亚洲欧美日韩 | 六月激情婷婷 | 日韩国产在线观看 | 91免费高清| 国产高清黄色 | 91精品视频免费在线观看 | 外国av网| 久久曰视频 | 91在线观看视频网站 | 午夜电影久久久 | 国产精品一区二区三区99 | 午夜久久电影网 | 99精品视频免费看 | 亚洲视频精选 | 首页av在线 | 精品国内自产拍在线观看视频 | 日韩啪啪小视频 | 天天干干| 91高清免费看 | 亚洲视频免费在线看 | 一区二区三区在线免费观看 | 日本精品久久久久 | 亚洲 欧美日韩 国产 中文 | 欧洲激情在线 | 成人av在线网址 | 欧美a在线免费观看 | 久久久久久福利 | 91亚洲国产成人久久精品网站 | 奇米先锋 | 狠狠色噜噜狠狠狠狠 | 午夜久草| 狠狠狠狠干 | 最新色站 | 日韩精品免费专区 | 99热在线国产精品 | 久久久久麻豆 | 亚洲午夜精品一区 | 黄网站大全 | 亚洲国产免费看 | 九九免费观看全部免费视频 | 日韩综合一区二区 | 在线观看av大片 | 免费成人av在线看 | 亚洲 欧美 综合 在线 精品 | 欧产日产国产69 | 国产一级电影网 | 丁香 久久 综合 | 日韩视频1区 | 天天射天天爱天天干 | 免费观看性生活大片3 | 久久av高清 | 美女福利视频 | 男女免费av | 亚洲免费成人av电影 | 91大神视频网站 | 久久久久免费网站 | 亚洲精品美女在线 | 天天色视频 | 色综合天天狠天天透天天伊人 | 国产综合精品一区二区三区 | 免费a视频在线观看 | 丁香六月婷婷开心 | 91热视频 | 天天干一干 | 免费三级网 | 成人av动漫在线 | 热久久影视 | 久久天天躁夜夜躁狠狠85麻豆 | 久久国产精品99久久人人澡 | 久久兔费看a级 | 国产精品久久久久久超碰 | 中文字幕在线观看第三页 | 亚洲国产免费网站 | 91中文字幕在线播放 | 天天久久夜夜 | 日韩中文字幕免费在线播放 | 91精品久久久久久综合乱菊 | 骄小bbw搡bbbb揉bbbb| 成人羞羞视频在线观看免费 | 亚洲精品在线免费播放 | 毛片3 | 国产喷水在线 | 国产又黄又爽无遮挡 | 亚洲欧洲成人精品av97 | 欧美精品免费在线 | 五月婷婷丁香在线观看 | 久久99精品久久久久久 | 成人动态视频 | 国产精品一区二区免费在线观看 | 中文字幕高清在线 | 人人搞人人干 | 国产成人精品久久久久蜜臀 | 久久精品99国产国产 | 日本午夜在线亚洲.国产 | 六月丁香婷婷久久 | 久久国产高清 | 国产精品久久亚洲 | 久久久久久激情 | 亚洲精品中文字幕视频 | 91日韩精品| 色七七亚洲影院 | 精品视频国产一区 | 日韩在线观看一区二区 | 探花视频在线观看免费 | 日韩国产精品久久久久久亚洲 | 国产精品av免费在线观看 | 在线视频手机国产 | 免费一级特黄毛大片 | 国产护士在线 | 91高清免费观看 | 黄色软件视频大全免费下载 | 亚洲国产精品va在线看黑人动漫 | 97国产一区| 亚洲综合一区二区精品导航 | 二区精品视频 | av在线播放快速免费阴 | 色偷偷网站视频 | 黄色一级在线免费观看 | 国产91精品一区二区麻豆网站 | 色停停五月天 | 蜜臀久久99精品久久久久久网站 | 麻豆av电影 | 亚洲日韩中文字幕在线播放 | 亚洲欧洲成人 | 国产剧情在线一区 | 在线观看av黄色 | 成人免费视频视频在线观看 免费 | 在线观看激情av | 91在线国产观看 | 亚洲 综合 精品 | 视频一区二区视频 | 久久婷婷网 | 91精品少妇偷拍99 | 久久99精品久久久久久秒播蜜臀 | 美女网站视频久久 | 亚洲激色 | 欧美精品久久久久a | 人人插人人草 | av中文字幕在线电影 | 精品一区二区三区电影 | 国产精品正在播放 | 九色最新网址 | 特级毛片aaa | 日韩精品一区在线观看 | 免费高清在线视频一区· | 2019精品手机国产品在线 | 成人黄色大片在线免费观看 | 国内免费久久久久久久久久久 | 欧美色图亚洲图片 | 天天插天天干天天操 | 亚洲国产精品久久久久久 | 中文字幕在线字幕中文 | 久久99精品久久久久久秒播蜜臀 |