《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > Android系統原理與源碼分析
Android系統原理與源碼分析
OFweek電子工程網
摘要: 眾所周知,AlertDialog類對于顯示對話。關于AlertDialog的基本用法在這里就不詳細介紹了,網上有很多,讀者可以自己搜索。那么本文要介紹的是如何隨心所欲地控制AlertDialog。
Abstract:
Key words :

  眾所周知,AlertDialog類對于顯示對話。關于AlertDialog的基本用法在這里就不詳細介紹了,網上有很多,讀者可以自己搜索。那么本文要介紹的是如何隨心所欲地控制AlertDialog。

  現在我們來看看第一個需求:如果某個應用需要彈出一個對話框。當單擊“確定“按鈕時完成某些工作,如果這些工作失敗,對話框不能關閉。而當成功完成工作后,則關閉對話框。當然,無論何程度情況,單擊“取消”按鈕都會關閉對話框。

  這個需求并不復雜,也并不過分(雖然我們可以自己弄個Activity來完成這個工作,也可在View上自己放按鈕,但這顯示有些大炮打蚊子了,如果對話框上只有一行文本,費這么多勁太不值了)。但使用過AlertDialog的讀者都知道,無論單擊的哪個按鈕,無論按鈕單擊事件的執行情況如何,對話框是肯定要關閉的。也就是說,用戶無法控制對話框的關閉動作。實際上,關閉對話框的動作已經在Android" title="Android">Android SDK寫死了,并且未給使用者留有任何接口。但我的座右銘是“宇宙中沒有什么是不能控制的”。

  既然要控制對放框的關閉行為,首先就得分析是哪些類、哪些代碼使這個對話框關閉的。進入AlertDialog類的源代碼。在AlertDialog中只定義了一個變量:mAlert。這個變量是AlertController類型。AlertController類是Android的內部類,在com.android.internal.app包中,無法通過普通的方式訪問。也無法在Eclipse中通過按Ctrl鍵跟蹤進源代碼。但可以直接在Android源代碼中找到AlertController.java。我們再回到AlertDialog類中。AlertDialog類實際上只是一個架子。象設置按鈕、設置標題等工作都是由AlertController類完成的。因此,AlertController類才是關鍵。

  找到AlertController.java文件。打開后不要感到頭暈哦,這個文件中的代碼是很多地。不過這么多代碼對本文的主題也沒什么用處。下面就找一下控制按鈕的代碼。

  在AlertController類的開頭就會看到如下的代碼:

  View.OnClickListener mButtonHandler = new View.OnClickListener() {

  public void onClick(View v) {

  Message m = null;

  if (v == mButtonPositive && mButtonPositiveMessage != null) {

  m = Message.obtain(mButtonPositiveMessage);

  } else if (v == mButtonNegative && mButtonNegativeMessage != null) {

  m = Message.obtain(mButtonNegativeMessage);

  } else if (v == mButtonNeutral && mButtonNeutralMessage != null) {

  m = Message.obtain(mButtonNeutralMessage);

  }

  if (m != null) {

  m.sendToTarget();

  }

  // Post a message so we dismiss after the above handlers are executed

  mHandler.obtainMessage(ButtonHandler.MSG_DISMISS_DIALOG, mDialogInterface)

  .sendToTarget();

  }

  };

  從這段代碼中可以猜出來,前幾行代碼用來觸發對話框中的三個按鈕(Positive、Negative和Neutral)的單擊事件,而最后的代碼則用來關閉對話框(因為我們發現了MSG_DISMISS_DIALOG、猜出來的)。

  mHandler.obtainMessage(ButtonHandler.MSG_DISMISS_DIALOG, mDialogInterface)

  .sendToTarget();

  上面的代碼并不是直接來關閉對話框的,而是通過一個Handler來處理,代碼如下:

  private static final class ButtonHandler extends Handler {

  // Button clicks have Message.what as the BUTTON{1,2,3} constant

  private static final int MSG_DISMISS_DIALOG = 1;

  private WeakReference《DialogInterface》 mDialog;

  public ButtonHandler(DialogInterface dialog) {

  mDialog = new WeakReference《DialogInterface》(dialog);

  }

  @Override

  public void handleMessage(Message msg) {

  switch (msg.what) {

  case DialogInterface.BUTTON_POSITIVE:

  case DialogInterface.BUTTON_NEGATIVE:

  case DialogInterface.BUTTON_NEUTRAL:

  ((DialogInterface.OnClickListener) msg.obj).onClick(mDialog.get(), msg.what);

  break;

  case MSG_DISMISS_DIALOG:

  ((DialogInterface) msg.obj).dismiss();

  }

  }

  }

  從上面代碼的最后可以找到

  ((DialogInterface) msg.obj).dismiss();。現在看了這么多源代碼,我們來總結一下對話框按鈕單擊事件的處理過程。在AlertController處理對話框按鈕時會為每一個按鈕添加一個onclick事件。而這個事件類的對象實例就是上面的mButtonHandler。在這個單擊事件中首先會通過發送消息的方式調用為按鈕設置的單擊事件(也就是通過setPositiveButton等方法的第二個參數設置的單擊事件),在觸發完按鈕的單擊事件后,會通過發送消息的方式調用dismiss方法來關閉對話框。而在AlertController類中定義了一個全局的mHandler變量。在AlertController類中通過ButtonHandler類來對象來為mHandler賦值。因此,我們只要使用我們自己Handler對象替換ButtonHandler就可以阻止調用dismiss方法來關閉對話框。下面先在自己的程序中建立一個新的ButtonHandler類(也可叫其他的名)。

  class ButtonHandler extends Handler

  {

  private WeakReference《DialogInterface》 mDialog;

  public ButtonHandler(DialogInterface dialog)

  {

  mDialog = new WeakReference《DialogInterface》(dialog);

  }

  @Override

  public

  void handleMessage(Message msg)

  {

  switch (msg.what)

  {

  case DialogInterface.BUTTON_POSITIVE:

  case DialogInterface.BUTTON_NEGATIVE:

  case DialogInterface.BUTTON_NEUTRAL:

  ((DialogInterface.OnClickListener) msg.obj).onClick(mDialog

  .get(), msg.what);

  break;

  }

  }

  }

  我們可以看到,上面的類和AlertController中的ButtonHandler類很像,只是支掉了switch語句的最后一個case子句(用于調用dismiss方法)和相關的代碼。

  眾所周知,AlertDialog類對于顯示對話。關于AlertDialog的基本用法在這里就不詳細介紹了,網上有很多,讀者可以自己搜索。那么本文要介紹的是如何隨心所欲地控制AlertDialog。

  現在我們來看看第一個需求:如果某個應用需要彈出一個對話框。當單擊“確定“按鈕時完成某些工作,如果這些工作失敗,對話框不能關閉。而當成功完成工作后,則關閉對話框。當然,無論何程度情況,單擊“取消”按鈕都會關閉對話框。

  這個需求并不復雜,也并不過分(雖然我們可以自己弄個Activity來完成這個工作,也可在View上自己放按鈕,但這顯示有些大炮打蚊子了,如果對話框上只有一行文本,費這么多勁太不值了)。但使用過AlertDialog的讀者都知道,無論單擊的哪個按鈕,無論按鈕單擊事件的執行情況如何,對話框是肯定要關閉的。也就是說,用戶無法控制對話框的關閉動作。實際上,關閉對話框的動作已經在Android SDK寫死了,并且未給使用者留有任何接口。但我的座右銘是“宇宙中沒有什么是不能控制的”。

  既然要控制對放框的關閉行為,首先就得分析是哪些類、哪些代碼使這個對話框關閉的。進入AlertDialog類的源代碼。在AlertDialog中只定義了一個變量:mAlert。這個變量是AlertController類型。AlertController類是Android的內部類,在com.android.internal.app包中,無法通過普通的方式訪問。也無法在Eclipse中通過按Ctrl鍵跟蹤進源代碼。但可以直接在Android源代碼中找到AlertController.java。我們再回到AlertDialog類中。AlertDialog類實際上只是一個架子。象設置按鈕、設置標題等工作都是由AlertController類完成的。因此,AlertController類才是關鍵。

  找到AlertController.java文件。打開后不要感到頭暈哦,這個文件中的代碼是很多地。不過這么多代碼對本文的主題也沒什么用處。下面就找一下控制按鈕的代碼。

  在AlertController類的開頭就會看到如下的代碼:

  View.OnClickListener mButtonHandler = new View.OnClickListener() {

  public void onClick(View v) {

  Message m = null;

  if (v == mButtonPositive && mButtonPositiveMessage != null) {

  m = Message.obtain(mButtonPositiveMessage);

  } else if (v == mButtonNegative && mButtonNegativeMessage != null) {

  m = Message.obtain(mButtonNegativeMessage);

  } else if (v == mButtonNeutral && mButtonNeutralMessage != null) {

  m = Message.obtain(mButtonNeutralMessage);

  }

  if (m != null) {

  m.sendToTarget();

  }

  // Post a message so we dismiss after the above handlers are executed

  mHandler.obtainMessage(ButtonHandler.MSG_DISMISS_DIALOG, mDialogInterface)

  .sendToTarget();

  }

  };

  從這段代碼中可以猜出來,前幾行代碼用來觸發對話框中的三個按鈕(Positive、Negative和Neutral)的單擊事件,而最后的代碼則用來關閉對話框(因為我們發現了MSG_DISMISS_DIALOG、猜出來的)。

  mHandler.obtainMessage(ButtonHandler.MSG_DISMISS_DIALOG, mDialogInterface)

  .sendToTarget();

  上面的代碼并不是直接來關閉對話框的,而是通過一個Handler來處理,代碼如下:

  private static final class ButtonHandler extends Handler {

  // Button clicks have Message.what as the BUTTON{1,2,3} constant

  private static final int MSG_DISMISS_DIALOG = 1;

  private WeakReference《DialogInterface》 mDialog;

  public ButtonHandler(DialogInterface dialog) {

  mDialog = new WeakReference《DialogInterface》(dialog);

  }

  @Override

  public void handleMessage(Message msg) {

  switch (msg.what) {

  case DialogInterface.BUTTON_POSITIVE:

  case DialogInterface.BUTTON_NEGATIVE:

  case DialogInterface.BUTTON_NEUTRAL:

  ((DialogInterface.OnClickListener) msg.obj).onClick(mDialog.get(), msg.what);

  break;

  case MSG_DISMISS_DIALOG:

  ((DialogInterface) msg.obj).dismiss();

  }

  }

  }

  從上面代碼的最后可以找到

  ((DialogInterface) msg.obj).dismiss();。現在看了這么多源代碼,我們來總結一下對話框按鈕單擊事件的處理過程。在AlertController處理對話框按鈕時會為每一個按鈕添加一個onclick事件。而這個事件類的對象實例就是上面的mButtonHandler。在這個單擊事件中首先會通過發送消息的方式調用為按鈕設置的單擊事件(也就是通過setPositiveButton等方法的第二個參數設置的單擊事件),在觸發完按鈕的單擊事件后,會通過發送消息的方式調用dismiss方法來關閉對話框。而在AlertController類中定義了一個全局的mHandler變量。在AlertController類中通過ButtonHandler類來對象來為mHandler賦值。因此,我們只要使用我們自己Handler對象替換ButtonHandler就可以阻止調用dismiss方法來關閉對話框。下面先在自己的程序中建立一個新的ButtonHandler類(也可叫其他的名)。

  class ButtonHandler extends Handler

  {

  private WeakReference《DialogInterface》 mDialog;

  public ButtonHandler(DialogInterface dialog)

  {

  mDialog = new WeakReference《DialogInterface》(dialog);

  }

  @Override

  public

  void handleMessage(Message msg)

  {

  switch (msg.what)

  {

  case DialogInterface.BUTTON_POSITIVE:

  case DialogInterface.BUTTON_NEGATIVE:

  case DialogInterface.BUTTON_NEUTRAL:

  ((DialogInterface.OnClickListener) msg.obj).onClick(mDialog

  .get(), msg.what);

  break;

  }

  }

  }

  我們可以看到,上面的類和AlertController中的ButtonHandler類很像,只是支掉了switch語句的最后一個case子句(用于調用dismiss方法)和相關的代碼。

  下面我們就要為AlertController中的mHandler重新賦值。由于mHandler是private變量,因此,在這里需要使用Java的反射技術來為mHandler賦值。由于在AlertDialog類中的mAlert變量同樣也是private,因此,也需要使用同樣的反射技術來獲得mAlert變量。代碼如下:

  先建立一個AlertDialog對象

  AlertDialog alertDialog = new AlertDialog.Builder(this)

  .setTitle(“abc”)

  .setMessage(“content”)

  .setIcon(R.drawable.icon)

  .setPositiveButton( “確定”,

  new OnClickListener()

  {

  @Override

  public void onClick(DialogInterface dialog,

  int which)

  {

  }

  }).setNegativeButton(“取消”, new OnClickListener()

  {

  @Override

  public void onClick(DialogInterface dialog, int which)

  {

  dialog.dismiss();

  }

  }).create();

  上面的對話框很普通,單擊哪個按鈕都會關閉對話框。下面在調用show方法之前來修改一個mHandler變量的值,OK,下面我們就來見證奇跡的時刻。

  try

  {

  Field field = alertDialog1.getClass().getDeclaredField(“mAlert”);

  field.setAccessible(true);

  //

  獲得mAlert變量的值

  Object obj = field.get(alertDialog1);

  field = obj.getClass().getDeclaredField(“mHandler”);

  field.setAccessible(true);

  //

  修改mHandler變量的值,使用新的ButtonHandler類

  field.set(obj, new ButtonHandler(alertDialog1));

  }

  catch (Exception e)

  {

  }

  //

  顯示對話框

  alertDialog.show();

  我們發現,如果加上try

  catch語句,單擊對話框中的確定按鈕不會關閉對話框(除非在代碼中調用dismiss方法),單擊取消按鈕則會關閉對話框(因為調用了dismiss方法)。如果去了try…catch代碼段,對話框又會恢復正常了。

  雖然上面的代碼已經解決了問題,但需要編寫的代碼仍然比較多,為此,我們也可采用另外一種方法來阻止關閉對話框。這種方法不需要定義任何的類。

  這種方法需要用點技巧。由于系統通過調用dismiss來關閉對話框,那么我們可以在dismiss方法上做點文章。在系統調用dismiss方法時會首先判斷對話框是否已經關閉,如果對話框已經關閉了,就會退出dismiss方法而不再繼續關閉對話框了。因此,我們可以欺騙一下系統,當調用dismiss方法時我們可以讓系統以為對話框已經關閉(雖然對話框還沒有關閉),這樣dismiss方法就失效了,這樣即使系統調用了dismiss方法也無法關閉對話框了。

  下面讓我們回到AlertDialog的源代碼中,再繼續跟蹤到AlertDialog的父類Dialog的源代碼中。找到dismissDialog方法。實際上,dismiss方法是通過dismissDialog方法來關閉對話框的,dismissDialog方法的代碼如下:

  private

  void dismissDialog() {

  if (mDecor == null) {

  if (Config.LOGV) Log.v(LOG_TAG,

  “[Dialog] dismiss: already dismissed, ignore”);

  return;

  }

  if (!mShowing) {

  if (Config.LOGV) Log.v(LOG_TAG,

  “[Dialog] dismiss: not showing, ignore”);

  return;

  }

  mWindowManager.removeView(mDecor);

  mDecor = null;

  mWindow.closeAllPanels();

  onStop();

  mShowing = false;

  sendDismissMessage();

  }

  該方法后面的代碼不用管它,先看if(!mShowing){…}這段代碼。這個mShowing變量就是判斷對話框是否已關閉的。因此,我們在代碼中通過設置這個變量就可以使系統認為對話框已經關閉,就不再繼續關閉對話框了。由于mShowing也是private變量,因此,也需要反射技術來設置這個變量。我們可以在對話框按鈕的單擊事件中設置mShowing,代碼如下:

  try

  {

  Field field = dialog.getClass()

  .getSuperclass().getDeclaredField(

  “mShowing”);

  field.setAccessible(true);

  //

  將mShowing變量設為false,表示對話框已關閉

  field.set(dialog, false);

  dialog.dismiss();

  }

  catch (Exception e)

  {

  }

  將上面的代碼加到哪個按鈕的單擊事件代碼中,哪個按鈕就再也無法關閉對話框了。如果要關閉對話框,只需再將mShowing設為true即可。要注意的是,在一個按鈕里設置了mShowing變量,也會影響另一個按鈕的關閉對話框功能,因此,需要在每一個按鈕的單擊事件里都設置mShowing變量的值。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 伊人久久久 | 男人和女人高潮做爰视频 | 国产精品黄色裸体片 | 亚洲精品18在线观看 | 亚洲激情精品 | 五月婷婷婷 | 成年人福利 | 中文精品视频 | 久久久久久夜 | 亚洲tv久久爽久久爽 | 欧美一级乱黄 | 久草在线资源福利站 | 波多野结衣人妻 | a级片免费视频 | 日本黄色成人 | 理论片中文字幕在线观看 | 国产精品久久久久久久久久久久久 | 亚洲中文字幕久在线 | 女人毛片av| 亚洲精品v天堂中文字幕 | 欧美性色黄大片a级毛片视频 | 成人免费毛片嘿嘿连载视频 | 夜夜躁很很躁日日躁麻豆 | 国产成人精品免高潮在线观看 | 欧美精品成人一区二区三区四区 | 草的我好爽| 国产真人无码作爱视频免费 | 日韩精品无码一区二区 | 肉体暴力强伦轩在线播放 | 国产真实夫妇视频 | 区二区欧美性插b在线视频网站 | 91成熟丰满女人少妇 | 免费看一级视频 | 性欧美老妇另类xxxx | 成人18aa黄漫免费观看 | 久久久久久久久久国产精品 | 婷婷影院91xxxss | 欧美一级性生活 | 日韩欧美高清在线 | 欧美成年黄网站色视频 | 欧美videossex极品 | 色网站免费观看 | 国产精品免费91 | 欧美日韩午夜爽爽 | 国内综合精品午夜久久资源 | 欧美性另类 | 久久视频这里有久久精品视频11 | 麻豆精产国品 | 穿越异世荒淫h啪肉np文 | 99夜夜| 性欧美丰满熟妇xxxx性仙踪林 | 性欧美高清come | 夜夜夜夜猛噜噜噜噜噜婷婷 | 国产精品捆绑调教网站 | 狠狠亚洲婷婷综合色香五月 | 狠色狠狠色狠狠狠色综合久久 | 亚洲网站在线观看 | 91av偷拍| 好紧好湿好黄的视频 | 黑人巨大精品欧美一区二区, | 激情国产av做激情国产爱 | 亚洲一区二区在线视频观看 | 777国产成人入口 | 女人天堂久久爱av四季av | 国产免费av网站 | 我和丰满老女人性销魂 | 亚洲乱亚洲乱妇50p 亚洲乱亚洲乱妇无码 | 精品久久久久久久无码 | 区一区二区三区中文字幕 | 无码福利日韩神码福利片 | 无码孕妇孕交在线观看 | 欧美在线专区 | 午夜激情四射 | 国产日韩一区二区在线观看 | 变态另类先锋影音 | 国产高清av| 精品一区二区三区在线视频 | 黄网免费在线观看 | 少妇啪啪av一区二区三区 | 久久国产精品久久精品国产 | 国产精品一久久香蕉国产线看观看 | √8天堂资源地址中文在线 √天堂 | 久久综合精品国产一区二区三区无码 | 怡红院免费的全部视频 | 丁香六月天婷婷 | 国产色婷婷精品综合在线 | 毛片24种姿势无遮无拦 | 97在线播放视频 | 免费一级黄色片 | 爱逼综合网 | 狠狠色狠狠干 | 国产激情视频在线播放 | 日韩a毛片| 少妇愉情理伦片高潮日本 | 国产精品久久久久高潮 | 日韩中文字幕免费观看 | 天天舔天天爽 | 亚洲影院在线播放 | 中文字幕在线网址88第一页 | av一起看香蕉 | 亚洲欧美精品aaaaaa片 | 草久久久久 | 久久草在线视频播放 | 一级免费片 | 婷婷色网 | 日韩精品专区在线影院重磅 | 成人性生交大片免费看中文 | 亚洲第一男人天堂 | 97视频播放 | 久久久久亚洲ai毛片换脸星大全 | 手机在线免费毛片 | 曰韩毛片 | 污污内射久久一区二区欧美日韩 | 亚洲精品理论电影在线观看 | 精品国产大片大片大片 | 最新国产在线视频 | 好大好硬好爽免费视频 | 欧美大片在线观看免费视频 | 精品久久久久一区二区 | 日韩精品中文字幕一区 | 小草社区在线观看播放 | 成人福利视频在线观看 | 狠狠88综合久久久久综合网 | 好吊视频在线观看 | 看黄a大片日本真人视频直播 | 成人做爰视频www网站小优视频 | 国产成人亚洲综合青青 | 无码一区二区三区中文字幕 | 97操操| 中文字幕丰满伦子无码 | 久精品在线观看 | 欧美成网站 | 永久在线 | 中年两口子高潮呻吟 | 亚洲一区二区国产 | 青青青国产视频 | 高h禁伦餐桌上的肉伦水视频 | 国产网站免费观看 | 久久av一区二区三区亚洲 | 综合久久久久久久 | 日本最大色倩网站www | 谁有免费黄色网址 | av手机免费看 | 少妇淫片 | 五月激情片 | 中文永久免费观看 | 精品国产系列 | 中文字幕成人精品久久不卡 | 久久蜜臀精品av | jzzijzzij亚洲日本少妇熟 | 精品国产96亚洲一区二区三区 | 九一自拍中文字幕 | 午夜精品久久久久久久白皮肤 | 亚洲激情视频在线 | 激情五月婷婷综合网 | 性xxxx视频 | 茄子av在线 | 欧美成人中文字幕 | 爱情岛论坛永久亚洲品质 | 亚洲精品区 | 麻豆导航| 国产精品高潮呻吟av久久4虎 | 国产乱码精品一区二三赶尸艳谈 | 五月婷婷六月丁香综合 | av之家在线| 亚洲精品激情 | 久久99日韩国产精品久久99 | 国产精品欧美一区二区三区奶水 | 日韩av网站在线播放 | 欧美黑人最猛性bbbbb | 人成午夜免费视频在线观看 | 成人快色 | 国产a在亚洲线播放 | 男人j进女人p免费视频 | 日日干狠狠干 | 欧美成人看片一区二区三区尤物 | 国产精品免费久久久久影院仙踪林 | 护士人妻hd中文字幕 | 波多野结衣一区二区三区中文字幕 | 福利片一区二区三区 | 香蕉网在线播放 | av无码久久久久不卡网站下载 | 女人18毛片a级毛片一区二区 | 男女性爽大片视频 | 久久综合另类激情人妖 | 色翁荡息又大又硬又粗又爽 | 国产又爽又猛又粗的视频a片 | 污污的网站在线观看 | 成年人黄色在线观看 | 国产精品日本一区二区不卡视频 | 在线免费黄网 | 少妇激情网| 久久天堂av综合合色蜜桃网 | 欧美色aⅴ欧美综合色 | 日韩精品一区二区三区在线视频 | 尤物网站在线播放 | 久久久久久久久久影院 | 欧美激情欧美激情在线五月 | 亚洲天天在线 | 亚洲精品偷拍 | 亚洲精品成a人在线观看 | 少妇一级淫片 | 国产性猛交普通话对白 | 国产成人无码18禁午夜福利p | 男女啪啪做爰高潮无遮挡 | 精品免费国产一区二区三区四区介绍 | 按摩师高h荡肉呻吟在线观看 | 少妇裸体视频 | 日本理论片免费观看在线视频 | 亚洲 欧美 制服 综合 另类 | 欧美精品黄色片 | 亚洲天堂av一区二区三区 | 日韩精品亚洲人成在线 | 青青伊人影院 | 精品剧情v国产在线观看 | 国产一区二区三区四区五区密私 | 日本极品少妇 | 日韩中出在线 | 久久久久国产精品午夜一区 | 侵犯の奶水授乳羞羞游戏 | 成人做爰100部片免费看网站 | 五月天久久久久 | 久久久久久久久久久久久久久 | 99热激情| 美女在线观看av | 天天尻| 欧美午夜精品一区二区蜜桃 | 国产欧美精品 | 精品人妻无码区二区三区 | 青青超碰 | 天堂中文网 | 国产黑丝视频 | 欧美视频性 | 日本午夜三级 | 欧美粗大猛烈老熟妇 | 97免费视频在线观看 | 色欲麻豆国产福利精品 | 国产女人高潮合集特写 | 国产精品88av | 1313午夜精品理论片 | 亚洲欧美一区二区精品久久久 | 欧美丰满少妇高潮18p | 一级女人18片毛片蜜桃av | 欧美性猛交富婆 | 一区二区在线观看免费视频 | 久久久久久久久99精品情浪 | 东北少妇高潮抽搐 | av在线网页 | 国产精品人人爽人人爽 | 国产亚洲精品久久久久久久久久久久 | 婷婷亚洲综合 | 亚洲成av人综合在线观看 | 久久小视频 | 女人久久久久 | 中文字幕av久久爽一区 | 亚洲欧美一区二区三区四区 | 久久精品国产亚洲a∨蜜臀 久久精品国产亚洲沈樵 | 黄色美女av| 日本熟妇色xxxxx欧美老妇 | 国产精品一区二区av不卡 | 久久久久99精品成人片牛牛影视 | 亚洲精品sm一区二区 | 亚洲精品理论电影在线观看 | 国产成人av片 | 草草夜色精品国产噜噜竹菊 | 91在线免费视频观看 | 亚洲精品久久久久久动漫器材一区 | 国产东北淫语对白粗口video | 中文天堂国产最新 | www中文字幕 | 日韩免费一二三区 | 青青草自拍偷拍 | 欧美成人日韩 | 日韩啪啪片 | 中文字幕在线看 | 人人妻人人澡人人爽欧美精品 | 激情第一区仑乱 | 床戏做爰无遮挡摸亲胸小说 | 欧美在线观看成人 | 日本黄色免费看 | 日本aⅴ在线 | 麻豆视频在线观看免费软件 | 亚洲黄a| 日本6一12娇小xxxⅹhd | 精品一区中文字幕 | 日日骑夜夜操 | 在线免费av播放 | 一本一道av | 亚洲精品久久久久58 | 91精品国产综合久久小仙女图片 | 亚洲精品国产精品国 | 天天躁恨躁夜躁2020优势对比 | 欧美精品色 | 日日摸夜夜添夜夜添国产精品 | 蜜臀久久精品 | 国产免费一区二区三区四区五区 | 天天燥日日燥 | 在线观看国产区 | 九九综合va免费看 | 91av免费看 | 日韩黄色网 | 操一操日一日 | 国产超碰精品 | 日韩精品一区二 | 亚洲日韩va无码中文字幕 | 日本黄色片网址 | 色婷婷久久一区二区三区麻豆 | 无码国产精品一区二区免费式直播 | 久久导航精品一区 | 91在线观看 | 国产色a在线观看 | 国产精品久久久久高潮 | 饥渴少妇勾引水电工av | 亚洲精品一区二区三区不 | 日本成人午夜视频 | 天天看片天天爽 | 爱情岛论坛自拍 | 久久精品欧美一区二区三区麻豆 | 久艹在线观看 | 国产伦精品一区三区视频 | 国产伦久视频免费观看 视频 | 狠狠躁夜夜躁人人爽超碰91 | 成人美女视频在线观看 | 亚洲毛片一区二区三区 | 国产男女猛烈无遮挡a片漫画 | 天天av天天翘天天综合网 | a天堂av| 男人添女荫道口喷水 | 日本少妇寂寞少妇aaa | 高清日韩av | 在线播放小视频 | 久久这里精品国产99丫e6 | 无遮无挡爽爽免费视频 | av毛片不卡| 一个人看的www日本高清视频 | 日韩欧一区二区三区 | 在线看一区 | 全黄一级裸体 | 日本高清视频在线播放 | 欧美亚洲日本国产 | 日日夜夜2017 | 少妇25p| 真人作爱90分钟免费看视频 | 国产真实乱子伦精品视频 | 日本在线视频中文字幕 | 97超碰人人看 | 中文在线日本 | xvideos国产精品好深 | 成年人免费大片 | 一区二区三区视频免费 | 噜噜噜在线观看免费视频日本 | 性视频毛茸茸 | 精品成人在线观看 | 中文字幕精品一区二区精品 | 免费观看成人羞羞视频网站观看 | 国产极品美女到高潮 | 在线观看国产精品日韩av | 中午字幕无线码一区2020 | 亚洲www| 另类小说婷婷 | 成人免费在线网站 | 国产经典三级 | 少妇一区二区视频 | 久久久国产99久久国产久灭火器 | 大肉大捧一进一出好爽 | 人人妻久久人人澡人人爽人人精品 | 57pao国产成永久免费视频 | 日韩精品一区二区三区免费视频观看 | 色秀视频在线观看 | 欧美激情精品久久久久久免费 | 69黄色片| 嘿咻视频在线观看 | 亚洲乱码av | 韩国美女黄色片 | 亚洲欧洲免费视频 | 欧美老女人性视频 | 国产极品网站 | 亚洲另类伦春色综合图片 | 成人久久网站 | 国产激情з∠视频一区二区 | a男人的天堂久久a毛片 | 成人国产精品秘片多多 | 日韩在线第二页 | 欧美在线综合 | 这里只有精品国产 | 高清国产精品人妻一区二区 | 牲高潮99爽久久久久777 | 亚洲成人黄色片 | 香蕉国产片一级一级一级一级 | 亚洲国产精品人人做人人爱 | 国产免费91| 亚洲精品午夜无码专区 | 波多野结衣成人在线 | 用舌头去添高潮无码视频 | www国产免费 | 亚洲精品少妇一区二区 | 亚洲午夜网 | 18精品爽国产白嫩精品 | 日本亲子乱子伦xxxx50路 | 丁香花小说手机在线观看免费 | 久久久国产99久久国产久灭火器 | 欧美大屁股xxxx高跟欧美黑人 | 亚洲午夜不卡 | 黑人操日本 | 国产高清视频一区 | 日韩色黄大片 | 成人网站在线进入爽爽爽 | 人妻少妇精品一区二区三区 | 午夜时刻免费入口 | 中文字幕丰满孑伦无码精品 | 黄色第一网站 | 亚州中文字幕蜜桃视频 | 久久国产柳州莫菁门 | 欧美另类极品videosbes | 久久久久久久久久久久久久久久久 | a级片一级片 | 色欲网天天无码av | 欧美大片在线观看免费视频 | 四虎国产精品免费久久 | 黄色毛片网站 | 国产女无套免费网在线观看 | 99国产精品久久久久久久成人 | 91精品久久久久久久久久 | 亚洲 欧美 变态 另类 制服 | 久久精品国产久精国产 | 超碰导航 | 日韩毛片免费看 | 久草在线视频首页 | 天海翼激烈高潮到腰振不止 | 国产精品51麻豆cm传媒 | 偷拍亚洲视频 | 高潮添下面视频免费看 | 污视频在线播放网站 | 亚洲精品1区 | 男人的天堂你懂的 | 欧洲影院 | 亚州一二区 | 日韩精品tv | 亚洲精品高清无码视频 | 性色做爰片在线观看ww | 成人羞羞网站 | 欧美日韩在线二区 | 少妇 酒店 露脸 3p | 久久久精品中文字幕 | 成年无码av片在线 | 337p粉嫩大胆噜噜噜亚瑟影院 | 国产精品无码一本二本三本色 | 色小说在线 | 任你操精品视频 | 中文字幕无码免费久久99 | 伊人色区 | 亚洲精品乱码久久久久久黑人 | 九九在线观看免费高清版 | 国产日韩久久久久69影院 | 国精产品一区二区三区 | 中文字幕av无码人妻 | 中日韩乱码一二新区 | 欧美福利视频 | 国产情侣激情在线对白 | 91久久久精品国产一区二区蜜臀 | 久热在线中文字幕色999舞 | 操在线视频 | 国产亚洲精久久久久久无码77777 | 欧美人做人爱a全程免费 | 中文无码精品一区二区三区 | wwwxxxxx日本| 免费在线观看毛片 | 久久久久无码国产精品一区 | 国内乱子对白免费在线 | 在线视频这里只有精品 | 2020av在线 | 无码国产精品一区二区vr老人 | 男主和女配啪慎入h闺蜜宋冉 | 天天色综合三 | 久久99精品久久久久久国产越南 | 性爱免费在线视频 | hd最新国产人妖ts视频仙踪林 | av在线免费网址 | 校园春色av | 一本大道av日日躁夜夜躁 | 噜噜噜久久亚洲精品国产品小说 | 久久久最新 | 91麻豆产精品久久久久久夏晴子 | 国产黄色小说 | 免费久久视频 | 精品欧美一区二区三区免费观看 | 一性一交一口添一摸视频 | 69激情网 | 亚洲精品91天天久久人人 | 日韩欧美在线一区二区三区 | 久久人人玩人妻潮喷内射人人 | 很黄很色60分钟在线观看 | 国产综合有码无码中文字幕 | 开心激情婷婷 | 在线成人黄色 | 日韩有码在线视频 | 精品国产户外野外 | 国产一级淫片a直接免费看 国产一级淫片免费放大片 国产一级影院 | 少妇久久久久久人妻无码 | 黄色a级一级片 | 超碰在线小说 | 国产女人18毛片水真多1 | 久久99久久98精品免观看软件 | 超碰2020| 精品美女在线观看 | 久久久亚洲裙底偷窥综合 | 日日碰狠狠躁久久躁婷婷 | 欧美猛交xxx | 国产又粗又硬又大爽黄老大爷视 | 国产精品成人aaaaa网站 | 日本人又黄又爽又大又色 | av一区不卡| 日韩欧美国产综合 | 最近中文字幕在线免费观看 | 无码av免费毛片一区二区 | 丰满人妻一区二区三区无码av | 红桃视频国产精品 | 久久一级大片 | 性开放xxxhd视频 | 国产第一页在线观看 | 四虎影视8848hh| 久久国产精品二国产精品 | 中文字幕av一区 | 久久夜色撩人精品国产小说 | 爱丝aiss无内高清丝袜视频 | 天天天色综合a | 免费最爽乱淫无遮挡 | 成人区人妻精品一区二区不卡视频 | 女人天堂av | 日本高清无卡码一区二区久久 | 国产精品一区二区久久久久 | 香港裸体三级aaaaa | 女同互舔互慰dv毛片 | 91国内精品久久久 | 免费日韩精品 | 激情视频国产 | 足疗店女技师按摩毛片 | 亚洲精品久久久久中文第一幕 | 精品国产一区二区三区久久 | 黄色网战大全 | 欧美性xxxxx极品少妇 | 国产精品日韩欧美 | 中文字幕日韩精品亚洲七区 | 久久精品国产亚洲a∨蜜臀 久久精品国产亚洲沈樵 | 日韩 在线 中文 制服一区 | 亚洲男人的天堂av手机在线观看 | 日本三级视频网站 | 无码中文字幕乱码一区 | 黄色在线免费观看视频 | 美女毛片一区二区三区四区 | 手机在线免费观看av片 | h网站在线播放 | 精品久久久久久久久久久aⅴ | 台湾午夜a级理论片在线播放 | 欧美成年人视频 | 天天网综合| 失禁大喷潮在线播放 | 人妻人人澡人人添人人爽人人玩 | 天堂一二三区 | 极品老师腿张开粉嫩小泬 | 精品国产18久久久久久二百 | 1024香蕉视频 | 久久久久久片 | 亚洲欧美v国产蜜芽tv | 人人曰 | 精品国产一区二区三区四区五区 | 爱情岛论坛永久亚洲品质 | 精品精品| 中文在线字幕免费观看电 | 男女裸体影院高潮 | 国产精品一区二区在线免费观看 | 亚洲国产一区二区三区a毛片 | а√最新版在线天堂8 | 精品久久国产 | 污视频网站在线 | 欧美精品一区二区三区视频 | 波多野结衣一本一道 | www.久久综合 | www国产精品内射熟女 | 色视频观看 | 亚洲乱码国产乱码精品精 | 麻豆一区二区三区 | 欧美aa在线观看 | 大黄专集在线观看 | 妓女爽爽爽爽爽妓女8888 | 国产成人精品免费视频大全最热 | 麻豆视频在线观看免费软件 | 自拍偷拍欧美 | 99久久久久久 | 亚洲成成品牛牛 | 四虎国产永久在线精品 | 国产猛烈高潮尖叫视频免费 | 成熟丰满熟妇高潮xxxxx视频 | av久久天堂三区 | 沉溺于黑人叶爱中文字幕 | 泽村玲子在线中文字幕 | 天天看毛片 | 天堂视频免费在线观看 | 精品国产99久久久久久宅男i | 亚洲区精品 | 波多野结衣在线观看一区二区 | 久久中文字幕一区二区三区 | 新毛片基地| 国产精品999久久久 国产精品99精品 | 国产一级片 | 男女晚上黄羞羞视频播放 | 强制憋尿play黄文尿奴 | 日本牲交大片免费观看 | 懂色在线| 闫嫩的18sex少妇hd | 色哟哟免费 | 成人羞羞视频免费看看 | 欧美bbbb内谢 | 日韩成人福利视频 | 国产又粗又猛又黄又爽无遮挡 |