精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為Android應用增加搜索功能:增加搜索建議

譯文
移動開發 Android
在本系列共兩篇的教程中,將指導開發者如何利用Android的 搜索框架進行搜索功能的開發。在本講中,將繼續學習在搜索應用中增加搜索提示建議的功能。

在上一篇教程<<為Android應用添加搜索功能>>中,我們學習了如何在android應用中其搜索框架的基本功能,在本講中,將繼續學習在搜索應用中增加搜索提示建議的功能。

什么是搜索建議

首先我們來看下什么是搜索建議。在Android應用中,當用戶輸入搜索字符串是,系統會根據輸入的字符串的部分或整體,以下拉框的方式列出含有用戶輸入字符串的列表,這樣用戶就可以不必輸入完所有字符,可以直接從下拉列表中選擇,方便了用戶。如果能在APP應用的搜索模塊中加入這個功能,對用戶來說無疑是十分方便的,下圖是在搜索應用中使用搜索建議的圖:

搜索建議的兩類模式

要讓搜索應用支持搜索建議,必須在應用中增加一個自定義的content provider,并且要設置配置文件中的搜索元數據。

Android支持兩種類型的搜索建議模式:

· 基于用戶輸入的搜索建議

· 基于APP應用本身數據庫的搜索建議,即從APP應用數據庫中提取數據做搜索建議

下面分別講解兩種搜索建議方式是如何配置的:

基于用戶輸入的搜索建議

這種方式相對比較容易,先來介紹下。在Android中,提供了SearchRecentSuggestionsProvider這個類,可以實現從用戶最近輸入的內容中進行檢索,開發者只需要做的,只需要繼承這個類,并且在構造函數中進行如下設置:

  1. import android.content.SearchRecentSuggestionsProvider; 
  2. publicclass SampleRecentSuggestionsProvider 
  3. extends SearchRecentSuggestionsProvider { 
  4. public static final String AUTHORITY = 
  5. SampleRecentSuggestionsProvider.class.getName(); 
  6. public static final int MODE =DATABASE_MODE_QUERIES; 
  7. public SampleRecentSuggestionsProvider() { 
  8. setupSuggestions(AUTHORITY, MODE); 

在上面的這個類中,繼承了SearchRecentSuggestionsProvider,并且在構造函數中進行了設置,這樣這個自定義的contentprovider就擁有了查詢用戶最近輸入檢索的能力了。

但必須同時保存用戶曾經的檢索輸入,這樣就能在用戶再次輸入時,重新顯示出來,這個必須在search的activity中,寫入如下代碼:

  1. SearchRecentSuggestions suggestions = 
  2. newSearchRecentSuggestions(this
  3. SampleRecentSuggestionsProvider.AUTHORITY, 
  4. SampleRecentSuggestionsProvider.MODE); 
  5. suggestions.saveRecentQuery(query, null); 

上面的代碼中可以看到,使用了SearchRecentSuggestionsProvider的

saveRecentQuery方法進行了搜索記錄的保存。

接下來,在配置文件中必須對這個contentprovider進行配置,如下:

  1. <provider 
  2. android:authorities="de.openminds.SampleRecentSuggestionsProvider" 
  3. android:name=".SampleRecentSuggestionsProvider"> 
  4. </provider> 

***,在searchable.xml中進行配置即可使用,如下:

  1. <? xml version="1.0"encoding="utf-8"?> 
  2. <searchablexmlns:androidsearchablexmlns:android="http://schemas.android.com/apk/res/android" 
  3. android:label="@string/search_label" 
  4. android:hint="@string/search_hint" 
  5. android:searchSettingsDescription="@string/search_settings_description" 
  6. android:searchSuggestAuthority="com.grokkingandroid.SampleRecentSuggestionsProvider " 
  7. android:searchSuggestIntentAction="android.intent.action.SEARCH" 
  8. android:searchSuggestThreshold="1" 
  9. android:includeInGlobalSearch="true" 
  10. android:searchSuggestSelection=" ?" 
  11. > 
  12. </searchable> 

其中的一些參數說明如下:

android:searchSuggestAuthorith

此屬性的值就是SearchSuggestAuthorith中的AUTHORITH了。

android:searchSuggestIntentAction

此屬性定義了當我們選中搜索提示的內容時發生的目的動作。

android:searchSuggestThreshold

此屬性定義了至少輸入幾個字符時才會彈出提示

android:includeInGlobalSearch

是否將內容加入android的全局搜索。true,加入。

android:searchSuggestSelection

定義搜索時參數的占位符

Android中數據庫保存的搜索記錄

SearchRecentSuggestionsProvider將用戶最近的搜索記錄保存在suggestions.db中,這個db保存了id,query查詢項,一個顯示的文本和搜索時候的時間戳。注意的是這個時間戳是必須的,因為所有的搜索記錄都是按時間排序的。

作為開發者來說,應該考慮定期清理搜索記錄,或者提供給用戶手動清除搜索記錄的機會,以讓用戶定期從搜索建議列表中看到更多的搜索建議項。清除搜索建議記錄是十分容易的,只需要調用SearchRecentSuggestions對象的clearHistory()方法即可。Android會默認保留250個搜索建議項在系統中。

基于應用的搜索建議

在更多情況下,開發者希望是提供給用戶基于app應用本身的搜索功能,這樣用戶在搜索時,將基于APP應用本身的內容提供給用戶搜索建議。這個時候,在自定義provider中,只需要關注query()和getContentType()就可以了。

首先,在應用中必須獲得用戶在搜索文本框中輸入的內容,然后再調用query()方法去搜索app應用。這個可以通過如下兩類方法去獲得用戶的輸入內容

· 默認的是通過URI的方式獲得用戶的輸入內容

· 在配置文件中的查詢字符串

先看下如何過URI的方式獲得用戶的輸入內容。系統都會通過query()函數在Content Provider中進行查詢,然后用Cursor返回對應的suggestion。系統對用戶的輸入,構造成如下的URI:

content://authority/optionalPath/SUGGEST_URI_PATH_QUERY /queryText

注意這里的Uri末尾的querytext是用URL方式進行編碼的,所以你需要解碼。

一般都是采用如下的方式取得它:Stringquery = uri.getLastPathSegment().toLowerCase();

這里的optional.suggest.path就是在searchable配置文件中設置的android:searchSuggestPath,如果在searchable配置文件沒有設置它,optional.suggest.path當然也不會包括在uri中。只有需要一個ContentProvider為多個searchable activities提供suggestions查詢的時候,才需要設置android:searchSuggestPath,這時它用于區分是哪個searchableactivities。

注意:SUGGEST_URI_PATH_QUERY 并不是URI的字面字符串,它是一個靜態成員常量,表示是把該常量的值加到uri中

下面是相關的使用方法代碼:

  1. public Cursor query(Uri uri, String[] projection, String selection, 
  2. String[] selectionArgs, String sortOrder){ 
  3. String query = uri.getLastPathSegment(); 
  4. if (SearchManager.SUGGEST_URI_PATH_QUERY.equals(query)) { 
  5. //如果找到符合用戶輸入的記錄 
  6. else { 
  7. //如果找不到符合用戶輸入的記錄 

接著看下如何在配置文件中進行查詢字符串的設置。可以在配置文件中進行如下配置,增加android:searchSuggestSelection選項,如下:

android:searchSuggestSelection="namelike ?"

那么query()方法代碼如下:

  1. public Cursor query(Uri uri, String[]projection, String selection, 
  2. String[]selectionArgs, String sortOrder) { 
  3. if (selectionArgs!= null && selectionArgs.length > 0 &&selectionArgs[0].length() > 0) { 
  4. // 用戶輸入內容保存在 selectionArgs[0] 中 
  5. else { 
  6. // 用戶沒輸入任何內容 

此外,還可以在配置文件中配置搜索建議的最短字符數,比如android:searchSuggestThreshold="3",則表明,用戶至少輸入3個字符后,才開始調用搜索建議項。

處理返回的結果

下面講解如何處理搜索建議返回給前端界面的問題。首先要在配置文件中,配置使用哪個action并且使用哪一個URI(這個URI其實就是搜索建議項的***數據來源列表),配置如下:

  android:searchSuggestIntentAction =

"android.intent.action.VIEW"

android:searchSuggestIntentData =

"content://someAuthority/somePath"

對返回的搜索建議項,是以一個cursor的方式返回的,各個列必須嚴格遵守相關的規定,下面是幾個重要的列的列表:

常量

用法

SUGGEST_COLUMN_TEXT_1

要在***行顯示的文本

SUGGEST_COLUMN_TEXT_2

在第二行顯示的文字

SUGGEST_COLUMN_INTENT_DATA_ID

添加到data_uri的額外的id

雖然說只有Searchmanager.SUGGEST_COLUMN_TEXT_1是強制要求的,但由于要知道用戶選擇的是哪一個選項,因此一般來說,id選項也是需要的。

此外,還需要將查詢出來的搜索數據轉換為cursor的數據格式,這個需要進行一點轉換工作。這可以使用SQLITEQueryBuilder的setprojectionMap方法進行轉換,在下一篇教程中,將會具體講解其用法,這里先列出相關代碼如下:

  1. Map<String, String> projectionMap = newHashMap<String, String>(); 
  2.  
  3. projectionMap.put(COL_BAND, COL_BAND +" AS " + SearchManager.SUGGEST_COLUMN_TEXT_1); 
  4.  
  5. projectionMap.put(COL_ID, COL_ID); 
  6.  
  7. projectionMap.put(COL_ROW_ID,COL_ROW_ID + " AS " + SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID); 
  8.  
  9. projectionMap.put(COL_LOCATION,COL_LOCATION + " AS " + SearchManager.SUGGEST_COLUMN_TEXT_2); 
  10.  
  11. projectionMap.put(COL_DATE, COL_DATE); 
  12.  
  13. builder.setProjectionMap(projectionMap); 

響應用戶搜索的intent

當用戶輸入搜索詞后,Android的搜索框架將調用manifest文件中配置的搜索的activity,這其中會使用顯式的intent去實現。就在app中搜索用的搜索建議而言,這個intent會包括在配置文件中的數據和從cursor中返回的數據。

對用戶搜索的響應的具體處理,取決于使用的是基于用戶已經輸入過的搜索詞的搜索建議,還是基于APP應用本身數據提供的搜索建議。

如果使用了基于用戶已經輸入過的搜索詞的搜索建議,那么intent的action就是Intent.ACTION_SEARCH ,這和上一篇教程中談到的是一樣的。

對于基于APP應用本身數據提供的搜索建議的情況,用戶大多數情況下,希望看到的是數據的詳細的情況,所以點了提供的搜索建議后,期望跳轉看到數據的詳情,這個可以通過設置Intent.ACTION_VIEW來實現。

由于搜索的activity一般會繼承ListActivity,所以一般情況下需要另外打開一個activity去查看某項數據的具體內容,代碼如下:

  1. private void handleIntent(Intentintent) { 
  2.  
  3. if(Intent.ACTION_SEARCH.equals(intent.getAction())) { 
  4.  
  5. String query =intent.getStringExtra(SearchManager.QUERY); 
  6.  
  7. doSearch(query); 
  8.  
  9. else if(Intent.ACTION_VIEW.equals(intent.getAction())) { 
  10.  
  11. Uri detailUri =intent.getData(); 
  12.  
  13. String id = detailUri.getLastPathSegment(); 
  14.  
  15. Intent detailsIntent =new Intent(getApplicationContext(), DetailsActivity.class); 
  16.  
  17. detailsIntent.putExtra("ID", id); 
  18.  
  19. startActivity(detailsIntent); 
  20.  
  21. finish(); 
  22.  
  23.  

全局搜索

對于全局搜索的設置,只需要在配置文件中進行如下設置:

android:includeInGlobalSearch="true"

但問題是如何將你的APP應用能放置到Android本身的搜索列表中去呢?如下圖:

List of globally searchable items

你的APP應用本身不能改變這些值,但Android提供了

android.app.SearchManager.INTENT_ACTION_GLOBAL_SEARCH

的方法,可以將你的APP應用添加到搜索列表中去,這樣的話,在搜索列表中,可以象如下圖的樣子進行搜索:

Global search suggestions showing results of the sample app

關于搜索建議***的問題

要注意的是關于搜索建議***的問題,在于開發者很難在樣式上進行控制,這將會是一個很大的問題。特別對于APP中如果搜索建議展示的樣式跟APP中其他的樣式很不同的話,將會影響用戶體驗。

另外,如果要在搜索建議中展示不同的數據 ,有的時候也會變得麻煩。比如在一個關于音樂會的app應用中,可能會出現位置和樂團或樂隊的相關信息,開發者企圖將它們在搜索建議中明確劃分開來,以方便用戶選擇,但可惜除非開發者進行自定義開發,否則無法實現這樣的功能。

小結

在本篇教程中,重點講解了如何在APP應用中加入搜索建議的兩種方法和注意點,在下一篇教程中,將講解如何使用搜索的快捷方式,敬請期待。

【51CTO譯稿,非經授權謝絕轉載,合作媒體轉載請注明原文出處、作者及51CTO譯者!】

責任編輯:佚名 來源: 51CTO.com
相關推薦

2012-07-30 09:41:04

Android搜索功能

2011-09-14 16:40:12

Android SDK

2009-03-23 10:04:46

Java Web入侵檢Java Web應用EasyJWeb

2023-08-16 19:00:53

谷歌人工智能搜索

2013-07-10 09:18:13

微軟Office 365

2011-06-02 11:37:34

Android 檢索

2009-03-13 08:37:35

GoogleAndroidiPhone

2012-03-05 10:41:00

思科防火墻

2013-12-08 21:33:31

谷歌移動搜索應用內搜索

2020-03-10 09:16:42

勒索軟件攻擊贖金

2014-12-31 17:12:54

模糊查詢模糊查詢

2012-10-29 12:49:49

2009-03-03 11:31:21

Twintter集成搜索

2011-02-15 09:39:37

Ubuntu OneUbuntu 11.0

2009-12-24 10:46:08

WPF MediaEl

2011-08-30 09:18:39

EnterpriseD云計算遷移

2021-01-01 10:00:04

Windows 10Windows操作系統

2012-05-30 14:03:33

開源大數據搜索

2013-10-21 10:35:21

Map值Map保存搜索鍵

2010-06-03 10:46:09

谷歌新功能
點贊
收藏

51CTO技術棧公眾號

久久精品在线视频| 亚洲国产中文字幕在线视频综合| 国产精品久久久久免费a∨| 在线观看国产精品一区| 日本a人精品| 亚洲国产精品久久艾草纯爱| 欧美日韩一区综合| 国产成人久久精品77777综合 | 久久久久久久久97| 国产剧情一区| 欧美刺激脚交jootjob| aaaaaa亚洲| 中文字幕资源网在线观看| 91日韩精品一区| 亚洲一区二区在线播放| 国产精品视频免费播放| 亚洲精品一二三区区别| 亚洲精品日韩久久久| 乳色吐息在线观看| av在线播放一区| 亚洲国产成人av| 一区二区三视频| 日夜干在线视频| 东方欧美亚洲色图在线| 国产精品自拍网| 日韩精品一区二区亚洲av| 欧美激情1区2区3区| 日韩在线观看一区二区三区| 亚洲成人av资源| 黄瓜视频免费观看在线观看www| 天堂网av在线播放| 国产精品一区二区久久精品爱涩| 国产成人jvid在线播放| 国产一级片免费观看| 亚洲h色精品| 日韩在线www| 白白色免费视频| 啪啪激情综合网| 精品国产百合女同互慰| 香蕉视频xxxx| 亚洲欧洲日韩精品在线| 欧美三级在线看| 国产xxxxx视频| 欧美日韩免费看片| 黑人与娇小精品av专区| 国产男女免费视频| 国内在线视频| 亚洲国产日韩一区二区| 激情五月六月婷婷| 亚洲丝袜精品| 亚洲综合色婷婷| 国产日产欧美一区二区| 老司机av在线免费看| 中文字幕一区av| 在线视频不卡国产| 黄网站app在线观看| 日韩毛片精品高清免费| av不卡在线免费观看| 性开放的欧美大片| 国产精品毛片a∨一区二区三区| 欧洲精品一区色| 黄色在线观看网| 中文字幕不卡三区| 午夜精品一区二区在线观看的| 国产午夜精品一区理论片| 国产香蕉久久精品综合网| 欧美午夜精品理论片a级大开眼界| 日本一卡二卡四卡精品| 久久久久久久久久久99999| 免费成人av网站| 亚洲国产一二三精品无码| 综合激情网五月| 亚洲一区成人| 国产精品福利无圣光在线一区| 五月婷婷丁香在线| 国产自产v一区二区三区c| 92看片淫黄大片欧美看国产片 | 亚洲私拍视频| 欧美伊人久久久久久午夜久久久久| 国产裸体免费无遮挡| 日韩黄色三级| 精品少妇一区二区三区在线视频| 无码国产69精品久久久久网站| 女同久久另类99精品国产| 亚洲图片欧美日产| 国产精品成人69xxx免费视频| 亚洲精品91| 欧美一级淫片aaaaaaa视频| 无码人妻一区二区三区线| 激情成人综合网| 国产一区不卡在线观看| av电影在线观看网址| 亚洲精品免费在线观看| 各处沟厕大尺度偷拍女厕嘘嘘| 国产在线|日韩| 精品奇米国产一区二区三区| 人妻熟女aⅴ一区二区三区汇编| 国内精品视频在线观看| 欧美xxxx18性欧美| 中文字幕精品三级久久久| 奇米四色…亚洲| 狠狠色伊人亚洲综合网站色| 婷婷激情在线| 精品久久中文字幕久久av| 亚洲综合婷婷久久| 神马久久av| 久久久av网站| 国产伦精品一区二区三区视频我| 激情久久五月天| 欧美日韩国产精品一卡| 日韩av激情| 欧美日韩国产片| 波多野结衣视频播放| 天堂网在线观看国产精品| 清纯唯美亚洲激情| 日韩精品欧美在线| 国产爆初菊在线观看免费视频网站| 最新成人av在线| 中文字幕乱码人妻综合二区三区 | 国产视频在线观看一区| 午夜视频成人| 色一区在线观看| 亚洲精品久久一区二区三区777 | 久久综合久久99| 久久久久久久久网| 欧美日韩伦理一区二区| 亚洲欧美日韩国产精品| 日韩精品乱码久久久久久| 激情av综合网| 亚洲精品电影在线一区| 亚洲美女炮图| 亚洲第一精品福利| 丰满少妇被猛烈进入一区二区| 日韩电影在线观看一区| 久热这里只精品99re8久| 欧美v亚洲v| 日韩欧美久久久| 久久噜噜色综合一区二区| 日本不卡一区二区| 视频在线一区二区三区| **欧美日韩在线观看| 亚洲欧美制服丝袜| 久久久久久91亚洲精品中文字幕| 成人av网站免费| 亚洲熟妇无码av在线播放| 欧美成人精品午夜一区二区| 久久精品国产一区| 国产又大又长又粗| 中文字幕在线一区二区三区| 亚洲欧美自偷自拍另类| 精品久久91| 国产精品久久久久久久久粉嫩av| 国产一区二区影视| 欧美偷拍一区二区| 91麻豆精品久久毛片一级| 久久精品国产精品青草| 在线电影看在线一区二区三区| 久久精品97| 久久久www成人免费精品| 国产极品999| 在线免费看h| 欧美精品在欧美一区二区少妇| 超碰人人人人人人人| 美女在线视频一区| 99亚洲精品视频| 伊人久久大香线蕉av超碰| 欧美激情xxxxx| 天堂av资源在线| 色久优优欧美色久优优| 林心如三级全黄裸体| 久久精品国产**网站演员| 天天想你在线观看完整版电影免费| 麻豆精品一区| 97视频免费看| 国产一级片在线播放| 欧美男男青年gay1069videost | 欧美在线精品一区二区三区| 欧美日韩国产在线看| 亚洲第一综合网| 国产精品中文字幕日韩精品| 奇米精品一区二区三区| 欧美肉体xxxx裸体137大胆| 国产日韩在线观看av| 欧美xxxx免费虐| 亚洲色图激情小说| 一级黄色录像大片| 亚洲大尺度视频在线观看| 欧美多人猛交狂配| 国产精品综合久久| 欧美国产亚洲一区| 亚州av乱码久久精品蜜桃| 国产日韩欧美一区二区三区四区 | 91免费视频网站| 成人免费图片免费观看| 一区二区三区 在线观看视| www.久久久久久久久久| 色8久久精品久久久久久蜜| 五月天丁香激情| 久久综合色播五月| 少妇熟女视频一区二区三区| 日本不卡一区二区三区| 欧美不卡在线播放| 99久久99视频只有精品| 欧美极品日韩| 午夜电影一区| 国产精品第100页| 欧美freesex黑人又粗又大| 久久精品国产亚洲精品2020| 三级黄视频在线观看| 91精品久久久久久久99蜜桃| 视频免费1区二区三区| h片视频在线观看| 亚洲女人天堂网| 精品人妻一区二区三区麻豆91| 色狠狠色狠狠综合| 国产小视频在线观看免费| 国产精品久久久久久久裸模| 亚洲国产果冻传媒av在线观看| 韩国欧美国产一区| 欧美伦理片在线看| 在线亚洲成人| 97中文字幕在线| 亚洲一区二区日韩| 一区二区三区四区视频在线 | 九九国产精品视频| 国产裸体舞一区二区三区| 国产主播一区| 免费cad大片在线观看| 99成人超碰| 日韩欧美三级电影| 免费看av成人| 欧美成人免费在线| 日韩美女国产精品| 精品免费一区二区三区蜜桃| 凹凸成人在线| 成人91免费视频| 亚洲码欧美码一区二区三区| 亚洲综合中文字幕在线观看| 欧美在线一级| 国产欧美最新羞羞视频在线观看| 亚洲成人激情社区| 日韩免费中文字幕| 777午夜精品电影免费看| 日韩免费观看av| 欧美日韩精品免费观看视欧美高清免费大片 | 国产伦一区二区三区色一情| 91精品入口| 国产精品12| 国产精品网在线观看| 国产伦视频一区二区三区| 九色丨蝌蚪丨成人| 国严精品久久久久久亚洲影视| 欧美福利在线播放网址导航| 国外成人免费视频| 亚洲成人一品| 四虎永久在线精品免费一区二区| 日韩av有码| 在线免费观看成人| 欧美日韩网址| 精品少妇一区二区三区在线| 亚洲欧美日韩专区| 日韩av三级在线| 日韩vs国产vs欧美| 伊人色在线视频| 成人污污视频在线观看| 欧美精品久久久久| 国产精品玖玖玖| 欧美一级在线免费| 天天躁日日躁狠狠躁伊人| 亚洲精品xxx| 国产福利小视频在线观看| 日韩在线小视频| 欧美精品videossex少妇| 2021久久精品国产99国产精品| 激情亚洲影院在线观看| 成人妇女淫片aaaa视频| 高清精品视频| 日韩av一区二区三区在线| 911久久香蕉国产线看观看| 成人在线观看你懂的| 日韩av网站免费在线| xxxxwww一片| 国产午夜精品久久久久久久| 91嫩草|国产丨精品入口| 亚洲mv在线观看| 无码久久精品国产亚洲av影片| 欧美一区二区视频网站| 五月婷婷丁香花| 中文字幕不卡av| 男插女视频久久久| 国产精品国产三级国产aⅴ9色| 欧美黄色一级| 日本一区二区不卡高清更新| 国产精品传媒精东影业在线| 精品无码一区二区三区爱欲| 蜜臀久久99精品久久久久久9| 一级全黄裸体片| 中文字幕欧美激情| 日本一级淫片免费放| 欧美精品高清视频| 婷婷五月综合激情| 欧美成人精品在线观看| 欧美日韩五区| 国产一区二区精品在线| 亚洲国产成人精品女人| 青青草原av在线播放| 国产999精品久久| 欧美一级特黄高清视频| 欧美日韩亚洲网| 精品国产区一区二| 精品国内自产拍在线观看| 成人动漫一区| 国产麻豆乱码精品一区二区三区 | 国产日韩亚洲欧美在线| 喷白浆一区二区| 国产男女猛烈无遮挡a片漫画| 亚洲一区二区精品久久av| 一级做a爱片久久毛片| 亚洲欧美第一页| 国产激情在线播放| 91视频在线免费观看| 国产精品99一区二区三区| 激情综合网俺也去| 91亚洲永久精品| 黄网站免费在线| 日韩欧美一卡二卡| 中文字幕xxx| 国产女优一区| 国内精品免费视频| 亚洲欧美另类在线| 一级久久久久久久| 自拍偷拍免费精品| 91另类视频| 日本成人三级电影网站| 欧美亚洲一区| 超碰97在线资源站| 欧美三级免费观看| 日韩福利一区二区| 欧洲美女7788成人免费视频| 欧美久久香蕉| 阿v天堂2017| av爱爱亚洲一区| 久久狠狠高潮亚洲精品| 亚洲福利视频在线| www.超碰在线| 久久综合中文色婷婷| 久久久久久久波多野高潮日日| 国产熟妇搡bbbb搡bbbb| 色综合久久精品| 嫩草精品影院| 国产精品久久久久久av| 久久影院一区| 久久久久xxxx| 一区二区三区不卡视频在线观看| www黄色网址| 午夜精品一区二区三区在线视频 | 免费电影一区| 米奇777在线欧美播放| 97在线观看免费视频| 欧美人伦禁忌dvd放荡欲情| 精品视频在线一区二区| 91九色偷拍| 91久久黄色| 日韩毛片无码永久免费看| 在线播放一区二区三区| 特级毛片在线| 久久国产手机看片| 日韩av在线播放中文字幕| 日本女人性生活视频| 日韩欧美国产一区在线观看| 成人一级福利| 日本福利一区二区三区| 精品亚洲porn| 国产污片在线观看| 亚洲天堂成人在线视频| 成人噜噜噜噜| 成人毛片视频网站| 中文字幕一区在线观看| 亚洲av无码国产精品永久一区| 2019中文字幕免费视频| 日韩大片在线| www.美色吧.com| 欧美伊人久久大香线蕉综合69| av在线网址观看| 免费h精品视频在线播放| 极品少妇xxxx偷拍精品少妇| 色网站在线播放| 久久香蕉频线观| 日韩精品导航| 免费在线观看污网站| 欧美日韩国产中文字幕| 欧美黄色激情| 蜜桃91精品入口| 国产在线精品免费| 日韩欧美成人一区二区三区| 久久中文精品视频| 免费av一区二区三区四区| 制服下的诱惑暮生| 色拍拍在线精品视频8848| 你懂得在线观看|