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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

android 汉字字母排序,android recycleView自定义字母检索A-Z排序滑动通讯录汉字英文相互转换...

發(fā)布時間:2023/12/18 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 汉字字母排序,android recycleView自定义字母检索A-Z排序滑动通讯录汉字英文相互转换... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

image

核心類:

package com.example.test29api.slider_contact

import android.content.Context

import android.graphics.Canvas

import android.graphics.Color

import android.graphics.Paint

import android.graphics.Rect

import android.graphics.drawable.Drawable

import android.text.TextPaint

import android.text.TextUtils

import android.util.ArrayMap

import android.util.AttributeSet

import android.util.TypedValue

import android.view.MotionEvent

import android.view.View

import androidx.annotation.VisibleForTesting

import com.example.test29api.R

import java.util.*

import java.util.Collections.sort as sort1

class NewSideBar @JvmOverloads constructor(

context: Context,

attrs: AttributeSet? = null,

defStyleAttr: Int = 0

) : View(context, attrs, defStyleAttr) {

var indexes: Array = arrayOf(

"A", "B", "C", "D", "E", "F", "G", "H", "I",

"J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",

"W", "X", "Y", "Z", "#"

)

private val normalTextColor //未選中字體顏色

: Int

private val selectedTextColor //選中字體顏色

: Int

private val selectedBackground //選中背景色

: Drawable?

private var selectedIndex = 0

private val indexPaint: TextPaint

private val indexBounds //索引大小

: Rect

private val backGroundBound //背景繪制區(qū)域

: Rect

private var listener: OnSelectIndexChangedListener? = null

override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {

val widthMode = MeasureSpec.getMode(widthMeasureSpec)

val heightMode = MeasureSpec.getMode(heightMeasureSpec)

val sizeWidth = MeasureSpec.getSize(widthMeasureSpec)

val sizeHeight = MeasureSpec.getSize(heightMeasureSpec)

val wrapHeight =

indexes.size * (indexBounds.height() + indexBounds.height() / 2) + indexBounds.height() / 2

val warpWidth = indexBounds.width() * 2

setMeasuredDimension(

if (widthMode == MeasureSpec.EXACTLY) sizeWidth else warpWidth

, if (heightMode == MeasureSpec.EXACTLY) sizeHeight else wrapHeight

)

}

override fun onDraw(canvas: Canvas) {

indexBounds.offsetTo(indexBounds.width() / 2, indexBounds.height() / 2)

backGroundBound.offsetTo(indexBounds.width() / 4, indexBounds.height() / 4)

for (i in indexes.indices) {

if (selectedIndex == i) { //繪制index背景

if (selectedBackground != null) {

selectedBackground.bounds = backGroundBound

selectedBackground.draw(canvas)

}

indexPaint.color = selectedTextColor

} else {

indexPaint.color = normalTextColor

}

indexes[i]?.let {

canvas.drawText(

it,

indexBounds.left + indexBounds.width() / 2.toFloat(),

indexBounds.top + baseLineOffset.toFloat(),

indexPaint

)

}

indexBounds.offset(0, 3 * indexBounds.height() / 2)

backGroundBound.offset(0, 3 * indexBounds.height() / 2)

}

}

override fun dispatchTouchEvent(event: MotionEvent): Boolean {

var selectedIndex = getSelectedIndex(event.y)

if (selectedIndex < 0) {

selectedIndex = 0

}

if (selectedIndex >= indexes.size) {

selectedIndex = indexes.size - 1

}

when (event.action) {

MotionEvent.ACTION_DOWN -> {

isHovered = true

if (listener != null && selectedIndex != -1 && selectedIndex != this.selectedIndex) {

this.selectedIndex = selectedIndex

listener!!.onIndexHovered(indexes[selectedIndex])

}

invalidate()

}

MotionEvent.ACTION_MOVE -> {

if (listener != null && selectedIndex != -1 && selectedIndex != this.selectedIndex) {

this.selectedIndex = selectedIndex

listener!!.onIndexHovered(indexes[selectedIndex])

}

invalidate()

}

MotionEvent.ACTION_UP -> {

isHovered = false

if (listener != null && selectedIndex >= 0 && selectedIndex < indexes.size) {

this.selectedIndex = selectedIndex

listener!!.onIndexSelected(indexes[selectedIndex])

}

}

}

return true

}

private fun getSelectedIndex(pointY: Float): Int {

return ((pointY - indexBounds.height() / 4) / (indexBounds.height() * 3 / 2)).toInt()

}

private val baseLineOffset: Int

get() {

val fontMetrics = indexPaint.fontMetricsInt

val dy = (fontMetrics.bottom - fontMetrics.top) / 2 - fontMetrics.bottom

return indexBounds.height() / 2 + dy

}

fun setListener(listener: OnSelectIndexChangedListener?) {

this.listener = listener

}

fun setSections(sections: Array) {

indexes = sections

requestLayout()

}

fun setSelectedIndex(selectedIndex: String?) {

if (isHovered) {

return

}

for (i in indexes.indices) {

val index = indexes[i]

if (TextUtils.equals(selectedIndex, index)) {

this.selectedIndex = i

invalidate()

break

}

}

}

@VisibleForTesting

fun getSelectedIndex(): String? {

return if (selectedIndex >= 0 && selectedIndex < indexes.size) indexes[selectedIndex] else null

}

interface OnSelectIndexChangedListener {

fun onIndexHovered(index: String?)

fun onIndexSelected(index: String?)

}

interface SectionIndexer {

val sections: Array

fun getPositionForSection(section: T): Int

fun getSectionForPosition(position: Int): T

}

class PinyinSectionIndexer :

SectionIndexer {

private var indexables: MutableList>? = null

private var mapSections: ArrayMap, String>? = null

private var skipCount = 0

fun > handleIndexableList(indexableList: MutableList): List {

return handleIndexableList(indexableList, 0)

}

/**

* @param indexableList 數(shù)據(jù)源

* @param skipCount 1-置頂?shù)谝粋€item不參與abc...排序

* 0-全部參與abc...排序

*/

fun > handleIndexableList(

indexableList: MutableList,

skipCount: Int

): List {

if (mapSections == null) {

mapSections = ArrayMap()

}

mapSections!!.clear()

if (indexables == null) {

indexables = ArrayList()

}

indexables!!.clear()

this.skipCount = skipCount

if (indexableList.size == 0 || indexableList.size < skipCount) {

return indexableList

}

val sortList: List =

ArrayList(indexableList.subList(skipCount, indexableList.size)).also {

//通過拼音首字母排序

it.sortWith(Comparator { o1, o2 ->

var index1 = getSection(o1)

if (TextUtils.equals(index1, "#")) {

index1 = "a"

}

var index2 = getSection(o2)

if (TextUtils.equals(index2, "#")) {

index2 = "a"

}

index1!!.compareTo(index2!!)

})

}

indexables!!.addAll(sortList)

val dest: MutableList = indexableList.subList(0, skipCount)

dest.addAll(sortList)

return dest

}

/**

* @return 返回數(shù)據(jù)源所有拼音首字母String[]集合

*/

override

val sections: Array

get() {

val sections =

ArrayList()

var i = 0

val len = indexables!!.size

while (i < len) {

val section = getSection(indexables!![i])

if (!sections.contains(section)) {

sections.add(section)

}

i++

}

return sections.toTypedArray()

}

/**

* @return 返回首字母對應數(shù)據(jù)的第一個position

*/

override fun getPositionForSection(section: String?): Int {

var i = 0

val len = indexables!!.size

while (i < len) {

if (TextUtils.equals(section, getSection(indexables!![i]))) {

return i + skipCount

}

i++

}

return -1

}

/**

* @return 通過數(shù)據(jù)的position返回首字母

*/

override fun getSectionForPosition(position: Int): String? {

return if (indexables != null && position >= 0 && position < indexables!!.size) {

getSection(indexables!![Math.max(position - skipCount, 0)])

} else {

""

}

}

/**

* @return 獲取indexable.getIndexable()的拼音大寫首字母(空則返回#),同時更新#sections

*/

fun getSection(indexable: Indexable): String? {

var section = mapSections!![indexable]

if (TextUtils.isEmpty(section)) {

val indexableString = indexable.indexable

val instance = CharacterParser.instance

if (TextUtils.isEmpty(indexableString)) {

section = "#"

} else { //獲取首字的拼音

val c = instance.convert(indexableString.substring(0, 1))

//首字母轉(zhuǎn)大寫

section =

if (TextUtils.isEmpty(c)) "0" else c?.substring(0, 1)?.toUpperCase(

Locale.ROOT

)

if (!section.isNullOrEmpty() && (section[0] < 'A' || section[0] > 'Z')) {

section = "#"

}

}

mapSections!![indexable] = section

}

return section

}

}

interface Indexable {

val indexable: T

}

init {

val ta = context.obtainStyledAttributes(attrs, R.styleable.NewSideBar)

normalTextColor =

ta.getColor(R.styleable.NewSideBar_normalTextColor, Color.GRAY)

selectedTextColor =

ta.getColor(R.styleable.NewSideBar_selectedTextColor, Color.BLACK)

selectedBackground = ta.getDrawable(R.styleable.NewSideBar_selectedBackground)

val textSize = ta.getDimension(

R.styleable.NewSideBar_indexTextSize, TypedValue

.applyDimension(

TypedValue.COMPLEX_UNIT_SP, 12f,

resources.displayMetrics

)

)

ta.recycle()

indexBounds = Rect()

indexPaint = TextPaint(Paint.ANTI_ALIAS_FLAG)

indexPaint.textSize = textSize

indexPaint.textAlign = Paint.Align.CENTER

indexPaint.getTextBounds("W", 0, 1, indexBounds)

val larger = Math.max(indexBounds.width(), indexBounds.height())

indexBounds[0, 0, larger] = larger

backGroundBound = Rect(

0,

0,

indexBounds.right + indexBounds.right / 2,

indexBounds.bottom + indexBounds.bottom / 2

)

}

}

attrs:

以上類基本邏輯為:通過傳入數(shù)據(jù)繪制字母及其背景,再通過接口和recycleView聯(lián)動;

調(diào)用方式:

activity:

import android.os.Bundle

import android.util.Log

import android.view.View

import android.view.ViewGroup

import androidx.appcompat.app.AppCompatActivity

import androidx.recyclerview.widget.LinearLayoutManager

import androidx.recyclerview.widget.RecyclerView

import androidx.recyclerview.widget.RecyclerView.Adapter

import com.example.test29api.R

import kotlinx.android.extensions.LayoutContainer

import kotlinx.android.synthetic.main.activity_contact_slider.*

import kotlinx.android.synthetic.main.item_base.view.*

import kotlinx.coroutines.*

class ContactSliderActivity : AppCompatActivity() {

private val indexer by lazy {

NewSideBar.PinyinSectionIndexer()

}

private val testContactBeans by lazy {

mutableListOf(

TestContactBean("張三", "18888888888"),

TestContactBean("李四", "19999999999"),

TestContactBean("王五", "13333333333"),

TestContactBean("科比", "13444444444"),

TestContactBean("布魯斯", "18213333333"),

TestContactBean("朱厚照", "18888888888"),

TestContactBean("朱祐樘", "17777777777"),

TestContactBean("朱高熾", "18888888888"),

TestContactBean("唐寅", "18888888855"),

TestContactBean("朱厚聰", "18888888866"),

TestContactBean("朱載厚", "18888888877"),

TestContactBean("劉瑾", "18215333333"),

TestContactBean("Alibaba", "15775757575"),

TestContactBean("Bruce", "15775757575"),

TestContactBean("富蘭克林", "18215333333")

)

}

open class DefaultViewHolder(override val containerView: View) :

RecyclerView.ViewHolder(containerView), LayoutContainer

private val defaultAdapter by lazy {

object : Adapter() {

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DefaultViewHolder {

return DefaultViewHolder(

layoutInflater.inflate(

R.layout.item_base,

parent,

false

)

)

}

override fun getItemCount(): Int {

return testContactBeans.size

}

override fun onBindViewHolder(holder: DefaultViewHolder, position: Int) {

holder.itemView.run {

txtName.text = testContactBeans[position].name

txtPhone.text = testContactBeans[position].phone

}

}

}

}

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_contact_slider)

initView()

}

private fun initView() {

recyclerView.apply {

layoutManager = LinearLayoutManager(this@ContactSliderActivity)

adapter = defaultAdapter

addOnScrollListener(object : RecyclerView.OnScrollListener() {

override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {

val position =

(recyclerView.layoutManager as LinearLayoutManager).findFirstVisibleItemPosition()

if (defaultAdapter.itemCount != 0 && position in 0 until testContactBeans.size) {

sideBar.setSelectedIndex(indexer.getSectionForPosition(position))

}

}

})

}

sideBar.apply {

visibility = View.GONE

setListener(object : NewSideBar.OnSelectIndexChangedListener {

override fun onIndexHovered(index: String?) {

(recyclerView.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(

indexer.getPositionForSection(index),

0

)

}

override fun onIndexSelected(index: String?) {

val manager = recyclerView.layoutManager as LinearLayoutManager

if (manager.findLastVisibleItemPosition() == (recyclerView.adapter?.itemCount

?: 0) - 1

) {

sideBar.setSelectedIndex(indexer.getSectionForPosition(manager.findFirstVisibleItemPosition()))

}

}

})

}

//設置排序后的數(shù)據(jù)源

val mutableListOf = mutableListOf()

mutableListOf.addAll(testContactBeans)

indexer.handleIndexableList(mutableListOf, 0).let { list ->

defaultAdapter.notifyItemRangeRemoved(0, testContactBeans.size - 1)

testContactBeans.clear()

testContactBeans.addAll(list)

defaultAdapter.notifyItemRangeChanged(0, testContactBeans.size - 1)

}

sideBar.setSections(indexer.sections)

sideBar.visibility = View.VISIBLE

}

}

activity_contact_slider:

android:layout_width="match_parent"

android:layout_height="match_parent"

xmlns:app="http://schemas.android.com/apk/res-auto">

android:id="@+id/recyclerView"

android:layout_width="0dp"

android:layout_height="0dp"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent"

/>

android:id="@+id/sideBar"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginEnd="8dp"

app:indexTextSize="12sp"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintTop_toTopOf="parent"

app:normalTextColor="@android:color/darker_gray"

app:selectedBackground="@drawable/side_bar_choose_background"

app:selectedTextColor="@android:color/white" />

side_bar_choose_background:

android:shape="oval">

item_base:

android:layout_width="match_parent"

android:layout_height="70dp"

android:background="@android:color/white"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools">

android:id="@+id/txtName"

android:layout_width="0dp"

android:layout_height="48dp"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintEnd_toStartOf="@id/txtPhone"

app:layout_constraintVertical_chainStyle="packed"

android:layout_marginStart="16dp"

android:layout_marginEnd="14dp"

android:textSize="16sp"

tools:text="項目成員"

android:gravity="center_vertical"

android:singleLine="true"/>

android:id="@+id/txtPhone"

android:layout_width="0dp"

android:layout_height="wrap_content"

app:layout_constraintStart_toEndOf="@id/txtName"

app:layout_constraintBottom_toBottomOf="@id/txtName"

app:layout_constraintTop_toTopOf="@id/txtName"

app:layout_constraintEnd_toEndOf="parent"

android:layout_marginStart="16dp"

android:layout_marginTop="8dp"

android:layout_marginEnd="14dp"

tools:text="1888888888"

android:singleLine="true"/>

CharacterParser

package com.example.test29api.slider_contact

/**

* Created by PengCangXu on 2017/5/7.

*/

class CharacterParser {

private var buffer: StringBuilder? = null

var resource: String? = null

/**

* 漢字轉(zhuǎn)成ASCII碼 * * @param chs * @return

*/

private fun getChsAscii(chs: String): Int {

var asc = 0

try {

val bytes = chs.toByteArray(charset("gb2312"))

if (bytes.size > 2 || bytes.size <= 0) {

throw RuntimeException("illegal resource string")

}

if (bytes.size == 1) {

asc = bytes[0].toInt()

}

if (bytes.size == 2) {

val hightByte = 256 + bytes[0]

val lowByte = 256 + bytes[1]

asc = 256 * hightByte + lowByte - 256 * 256

}

} catch (e: Exception) {

println("ERROR:ChineseSpelling.class-getChsAscii(String chs)$e")

}

return asc

}

/**

* 單字解析 * * @param str * @return

*/

fun convert(str: String): String? {

var result: String? = null

val ascii = getChsAscii(str)

if (ascii in 1..159) {

result = ascii.toString()

} else {

for (i in pyvalue.size - 1 downTo 0) {

if (pyvalue[i] <= ascii) {

result = pystr[i]

break

}

}

}

return result

}

/***詞組解析 * * @param chs * @return */

fun parse(chs: String?): String {

var key: String

var value: String?

buffer = StringBuilder()

for (i in chs!!.indices) {

key = chs.substring(i, i + 1)

if (key.toByteArray().size >= 2) {

value = convert(key)

if (value == null) {

value = "unknown"

}

} else {

value = key

}

buffer!!.append(value)

}

return buffer.toString()

}

val spelling: String

get() = parse(resource)

companion object {

private val pyvalue = intArrayOf(

-20319,

-20317,

-20304,

-20295,

-20292,

-20283,

-20265,

-20257,

-20242,

-20230,

-20051,

-20036,

-20032,

-20026,

-20002,

-19990,

-19986,

-19982,

-19976,

-19805,

-19784,

-19775,

-19774,

-19763,

-19756,

-19751,

-19746,

-19741,

-19739,

-19728,

-19725,

-19715,

-19540,

-19531,

-19525,

-19515,

-19500,

-19484,

-19479,

-19467,

-19289,

-19288,

-19281,

-19275,

-19270,

-19263,

-19261,

-19249,

-19243,

-19242,

-19238,

-19235,

-19227,

-19224,

-19218,

-19212,

-19038,

-19023,

-19018,

-19006,

-19003,

-18996,

-18977,

-18961,

-18952,

-18783,

-18774,

-18773,

-18763,

-18756,

-18741,

-18735,

-18731,

-18722,

-18710,

-18697,

-18696,

-18526,

-18518,

-18501,

-18490,

-18478,

-18463,

-18448,

-18447,

-18446,

-18239,

-18237,

-18231,

-18220,

-18211,

-18201,

-18184,

-18183,

-18181,

-18012,

-17997,

-17988,

-17970,

-17964,

-17961,

-17950,

-17947,

-17931,

-17928,

-17922,

-17759,

-17752,

-17733,

-17730,

-17721,

-17703,

-17701,

-17697,

-17692,

-17683,

-17676,

-17496,

-17487,

-17482,

-17468,

-17454,

-17433,

-17427,

-17417,

-17202,

-17185,

-16983,

-16970,

-16942,

-16915,

-16733,

-16708,

-16706,

-16689,

-16664,

-16657,

-16647,

-16474,

-16470,

-16465,

-16459,

-16452,

-16448,

-16433,

-16429,

-16427,

-16423,

-16419,

-16412,

-16407,

-16403,

-16401,

-16393,

-16220,

-16216,

-16212,

-16205,

-16202,

-16187,

-16180,

-16171,

-16169,

-16158,

-16155,

-15959,

-15958,

-15944,

-15933,

-15920,

-15915,

-15903,

-15889,

-15878,

-15707,

-15701,

-15681,

-15667,

-15661,

-15659,

-15652,

-15640,

-15631,

-15625,

-15454,

-15448,

-15436,

-15435,

-15419,

-15416,

-15408,

-15394,

-15385,

-15377,

-15375,

-15369,

-15363,

-15362,

-15183,

-15180,

-15165,

-15158,

-15153,

-15150,

-15149,

-15144,

-15143,

-15141,

-15140,

-15139,

-15128,

-15121,

-15119,

-15117,

-15110,

-15109,

-14941,

-14937,

-14933,

-14930,

-14929,

-14928,

-14926,

-14922,

-14921,

-14914,

-14908,

-14902,

-14894,

-14889,

-14882,

-14873,

-14871,

-14857,

-14678,

-14674,

-14670,

-14668,

-14663,

-14654,

-14645,

-14630,

-14594,

-14429,

-14407,

-14399,

-14384,

-14379,

-14368,

-14355,

-14353,

-14345,

-14170,

-14159,

-14151,

-14149,

-14145,

-14140,

-14137,

-14135,

-14125,

-14123,

-14122,

-14112,

-14109,

-14099,

-14097,

-14094,

-14092,

-14090,

-14087,

-14083,

-13917,

-13914,

-13910,

-13907,

-13906,

-13905,

-13896,

-13894,

-13878,

-13870,

-13859,

-13847,

-13831,

-13658,

-13611,

-13601,

-13406,

-13404,

-13400,

-13398,

-13395,

-13391,

-13387,

-13383,

-13367,

-13359,

-13356,

-13343,

-13340,

-13329,

-13326,

-13318,

-13147,

-13138,

-13120,

-13107,

-13096,

-13095,

-13091,

-13076,

-13068,

-13063,

-13060,

-12888,

-12875,

-12871,

-12860,

-12858,

-12852,

-12849,

-12838,

-12831,

-12829,

-12812,

-12802,

-12607,

-12597,

-12594,

-12585,

-12556,

-12359,

-12346,

-12320,

-12300,

-12120,

-12099,

-12089,

-12074,

-12067,

-12058,

-12039,

-11867,

-11861,

-11847,

-11831,

-11798,

-11781,

-11604,

-11589,

-11536,

-11358,

-11340,

-11339,

-11324,

-11303,

-11097,

-11077,

-11067,

-11055,

-11052,

-11045,

-11041,

-11038,

-11024,

-11020,

-11019,

-11018,

-11014,

-10838,

-10832,

-10815,

-10800,

-10790,

-10780,

-10764,

-10587,

-10544,

-10533,

-10519,

-10331,

-10329,

-10328,

-10322,

-10315,

-10309,

-10307,

-10296,

-10281,

-10274,

-10270,

-10262,

-10260,

-10256,

-10254

)

var pystr = arrayOf(

"a",

"ai",

"an",

"ang",

"ao",

"ba",

"bai",

"ban",

"bang",

"bao",

"bei",

"ben",

"beng",

"bi",

"bian",

"biao",

"bie",

"bin",

"bing",

"bo",

"bu",

"ca",

"cai",

"can",

"cang",

"cao",

"ce",

"ceng",

"cha",

"chai",

"chan",

"chang",

"chao",

"che",

"chen",

"cheng",

"chi",

"chong",

"chou",

"chu",

"chuai",

"chuan",

"chuang",

"chui",

"chun",

"chuo",

"ci",

"cong",

"cou",

"cu",

"cuan",

"cui",

"cun",

"cuo",

"da",

"dai",

"dan",

"dang",

"dao",

"de",

"deng",

"di",

"dian",

"diao",

"die",

"ding",

"diu",

"dong",

"dou",

"du",

"duan",

"dui",

"dun",

"duo",

"e",

"en",

"er",

"fa",

"fan",

"fang",

"fei",

"fen",

"feng",

"fo",

"fou",

"fu",

"ga",

"gai",

"gan",

"gang",

"gao",

"ge",

"gei",

"gen",

"geng",

"gong",

"gou",

"gu",

"gua",

"guai",

"guan",

"guang",

"gui",

"gun",

"guo",

"ha",

"hai",

"han",

"hang",

"hao",

"he",

"hei",

"hen",

"heng",

"hong",

"hou",

"hu",

"hua",

"huai",

"huan",

"huang",

"hui",

"hun",

"huo",

"ji",

"jia",

"jian",

"jiang",

"jiao",

"jie",

"jin",

"jing",

"jiong",

"jiu",

"ju",

"juan",

"jue",

"jun",

"ka",

"kai",

"kan",

"kang",

"kao",

"ke",

"ken",

"keng",

"kong",

"kou",

"ku",

"kua",

"kuai",

"kuan",

"kuang",

"kui",

"kun",

"kuo",

"la",

"lai",

"lan",

"lang",

"lao",

"le",

"lei",

"leng",

"li",

"lia",

"lian",

"liang",

"liao",

"lie",

"lin",

"ling",

"liu",

"long",

"lou",

"lu",

"lv",

"luan",

"lue",

"lun",

"luo",

"ma",

"mai",

"man",

"mang",

"mao",

"me",

"mei",

"men",

"meng",

"mi",

"mian",

"miao",

"mie",

"min",

"ming",

"miu",

"mo",

"mou",

"mu",

"na",

"nai",

"nan",

"nang",

"nao",

"ne",

"nei",

"nen",

"neng",

"ni",

"nian",

"niang",

"niao",

"nie",

"nin",

"ning",

"niu",

"nong",

"nu",

"nv",

"nuan",

"nue",

"nuo",

"o",

"ou",

"pa",

"pai",

"pan",

"pang",

"pao",

"pei",

"pen",

"peng",

"pi",

"pian",

"piao",

"pie",

"pin",

"ping",

"po",

"pu",

"qi",

"qia",

"qian",

"qiang",

"qiao",

"qie",

"qin",

"qing",

"qiong",

"qiu",

"qu",

"quan",

"que",

"qun",

"ran",

"rang",

"rao",

"re",

"ren",

"reng",

"ri",

"rong",

"rou",

"ru",

"ruan",

"rui",

"run",

"ruo",

"sa",

"sai",

"san",

"sang",

"sao",

"se",

"sen",

"seng",

"sha",

"shai",

"shan",

"shang",

"shao",

"she",

"shen",

"sheng",

"shi",

"shou",

"shu",

"shua",

"shuai",

"shuan",

"shuang",

"shui",

"shun",

"shuo",

"si",

"song",

"sou",

"su",

"suan",

"sui",

"sun",

"suo",

"ta",

"tai",

"tan",

"tang",

"tao",

"te",

"teng",

"ti",

"tian",

"tiao",

"tie",

"ting",

"tong",

"tou",

"tu",

"tuan",

"tui",

"tun",

"tuo",

"wa",

"wai",

"wan",

"wang",

"wei",

"wen",

"weng",

"wo",

"wu",

"xi",

"xia",

"xian",

"xiang",

"xiao",

"xie",

"xin",

"xing",

"xiong",

"xiu",

"xu",

"xuan",

"xue",

"xun",

"ya",

"yan",

"yang",

"yao",

"ye",

"yi",

"yin",

"ying",

"yo",

"yong",

"you",

"yu",

"yuan",

"yue",

"yun",

"za",

"zai",

"zan",

"zang",

"zao",

"ze",

"zei",

"zen",

"zeng",

"zha",

"zhai",

"zhan",

"zhang",

"zhao",

"zhe",

"zhen",

"zheng",

"zhi",

"zhong",

"zhou",

"zhu",

"zhua",

"zhuai",

"zhuan",

"zhuang",

"zhui",

"zhun",

"zhuo",

"zi",

"zong",

"zou",

"zu",

"zuan",

"zui",

"zun",

"zuo"

)

val instance = CharacterParser()

}

}

以上的類主要做一些漢字ascii轉(zhuǎn)拼音的操作;

TestContactBean:

package com.example.test29api.slider_contact

class TestContactBean(val name: String = "", val phone: String = "") : NewSideBar.Indexable {

override val indexable: String

get() {

return name

}

}

這里不要忘了繼承NewSideBar的Indexable接口,便于獲取需要排序的詞組;

總結(jié)

以上是生活随笔為你收集整理的android 汉字字母排序,android recycleView自定义字母检索A-Z排序滑动通讯录汉字英文相互转换...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

青草视频在线免费 | 色香网 | 国产一线二线三线在线观看 | 美女网站在线看 | 国产91亚洲 | 国产系列 在线观看 | 久久国产手机看片 | 九九久久精品 | 在线不卡中文字幕播放 | 日韩av看片| 欧美久久影院 | 夜夜高潮夜夜爽国产伦精品 | 亚洲国产精品久久久久久 | 狠狠色噜噜狠狠 | 91社区国产高清 | 日韩av电影中文字幕在线观看 | 最新av网址在线观看 | 国产精品青草综合久久久久99 | 精品99视频 | 日韩一区二区在线免费观看 | 视频在线观看一区 | 超碰在线最新地址 | 国产白浆在线观看 | 91xav| www久久99 | 国产在线不卡视频 | 东方av在 | 三级a毛片 | 日本特黄一级片 | 九九综合久久 | 久久久麻豆精品一区二区 | 91精品免费| 黄色在线免费观看网站 | 欧美91片 | 99爱精品视频 | 国产又黄又爽又猛视频日本 | 国产五十路毛片 | 久久久www成人免费精品 | 亚洲成a人片在线观看网站口工 | 天天色.com | 亚洲五月婷婷 | 天天草天天干天天射 | 精品99免费视频 | 91精品一区二区三区久久久久久 | 色婷婷色 | 亚洲电影成人 | 国产专区免费 | 国产精品99久久久久人中文网介绍 | 又黄又刺激| adn—256中文在线观看 | 在线免费看黄网站 | 在线观看91精品视频 | av成人免费观看 | 欧美日韩国产精品一区 | 香蕉视频在线免费看 | 五月激情电影 | 久av电影 | 成人片在线播放 | 久久国产精品小视频 | 日韩电影一区二区在线观看 | 亚洲视频一 | 最近中文字幕免费观看 | 成人在线播放av | 中文字幕欲求不满 | 成人禁用看黄a在线 | 久久超级碰视频 | 中文字幕视频播放 | 亚洲国产中文字幕在线 | 国产亚洲婷婷免费 | 一区二区三区在线免费观看视频 | 国产精品精品久久久 | 一区二区三区日韩精品 | 在线观看视频97 | 人人添人人澡 | 免费日韩 精品中文字幕视频在线 | 久草在线中文888 | 99福利影院 | 97超碰中文字幕 | 777久久久| 国产精品女主播一区二区三区 | 日韩最新av | 亚州精品视频 | 国产成年免费视频 | 国产成人久久精品77777 | 美女网站在线观看 | 中文字幕在线观看三区 | 久久久精品视频成人 | 在线视频亚洲 | 日韩三区在线观看 | 99久久国产免费免费 | 男女靠逼app | 在线观看日本韩国电影 | 国产一区二区手机在线观看 | 在线看一区二区 | 在线观看中文字幕2021 | 日韩免费高清在线观看 | 九九热视频在线免费观看 | 成 人 黄 色 片 在线播放 | 色婷婷久久 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 久久激情小视频 | 久热只有精品 | 国产欧美日韩精品一区二区免费 | 亚洲综合婷婷 | 久久99精品一区二区三区三区 | 黄色三级久久 | 欧美精品一区二区在线播放 | 超碰97免费 | 激情欧美国产 | 99福利片| 99性视频 | av网址aaa| 99精品在线视频播放 | 久久综合欧美精品亚洲一区 | 久久男人中文字幕资源站 | 成人在线观看日韩 | 四虎在线视频免费观看 | 亚洲国产片色 | av黄色一级片 | 免费看的黄色网 | 日韩av线观看 | 色婷婷综合久久久中文字幕 | 欧美日韩国产页 | 美女黄濒| 91精品国产91久久久久久三级 | 天天做日日做天天爽视频免费 | 五月婷婷激情 | 久久久福利影院 | 日韩一区视频在线 | 亚洲精品乱码久久久久久高潮 | 日韩av手机在线观看 | 五月综合在线观看 | 狠狠色噜噜狠狠狠狠2021天天 | 99精品久久精品一区二区 | 亚洲国产精品va在线看 | 国产中文字幕视频在线 | 国产成人久久精品 | 日韩免费中文 | 日韩一二三 | 最近中文字幕免费观看 | 蜜臀av夜夜澡人人爽人人 | 四虎影视成人永久免费观看亚洲欧美 | 97视频在线观看成人 | 在线欧美国产 | 中文字幕日韩国产 | 久久久久国产精品www | 国产激情久久久 | 天天干天天射天天插 | 波多野结衣动态图 | 成年人在线观看网站 | 18pao国产成视频永久免费 | 极品国产91在线网站 | 看全黄大色黄大片 | 最新国产精品亚洲 | 五月天伊人 | 午夜国产福利在线观看 | 久久久九色精品国产一区二区三区 | 日韩视频免费在线 | 欧美日韩国产欧美 | 色大片免费看 | 91成年视频| 81国产精品久久久久久久久久 | 国产一区在线视频 | 激情丁香婷婷 | 中文字幕综合在线 | 黄色最新网址 | 最新日本中文字幕 | 国产99在线免费 | 日韩高清精品免费观看 | 伊人永久| 国产自产在线视频 | 日韩欧美在线视频一区二区三区 | 日本69hd| 天天搞天天干 | 天天天天爽 | 亚洲精品国偷拍自产在线观看 | av在线播放一区二区三区 | 亚洲精品久久久久久久不卡四虎 | 超碰最新网址 | 日韩免费高清在线观看 | 久久久综合 | 国产中文字幕久久 | 欧美在线18| 欧美另类一二三四区 | 国产精品 中文字幕 亚洲 欧美 | 亚洲精品麻豆 | 欧美精品国产综合久久 | 国产在线看一区 | 精品在线亚洲视频 | 九九免费观看全部免费视频 | 九九视频精品免费 | 999久久久久久久久6666 | 国产成人99久久亚洲综合精品 | 黄网站大全| av在线网站免费观看 | 免费久草视频 | 久久国产亚洲 | 亚洲精品女人 | 国产精品日韩在线播放 | 久久精品免费观看 | 日韩免费电影 | 精品国产一区二区三区男人吃奶 | 久要激情网 | 国产一二三精品 | 久久成人一区 | 东方av免费在线观看 | 日日夜色 | 日韩一二三区不卡 | 久久成人精品视频 | 国产精品对白一区二区三区 | 日韩v在线| 九九在线精品视频 | 欧美精品被 | 日本久热 | 99视频导航 | 国产精成人品免费观看 | 在线观看国产成人av片 | 天天干天天拍天天操天天拍 | 久久久久亚洲国产 | 日韩精品欧美视频 | 亚洲成av人片在线观看无 | 精品国产乱码久久久久久三级人 | 国产精品xxxx18a99 | 国产精品18久久久久久久网站 | 毛片美女网站 | 亚洲一区黄色 | 免费观看国产成人 | 午夜精品电影一区二区在线 | 久久99婷婷| 色婷婷免费视频 | 免费在线观看av片 | 久久999精品 | 亚洲免费在线播放视频 | 亚洲欧美日韩精品久久久 | 热久久免费国产视频 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国产高清视频免费最新在线 | 天天操天天色天天射 | 国产无限资源在线观看 | 在线成人一区 | 日日日日 | 免费国产ww| 中文字幕资源在线观看 | 人人爽人人射 | 精品二区视频 | 久久99免费视频 | 久久婷婷国产色一区二区三区 | 日韩综合精品 | 久久久精品久久 | 四虎成人精品永久免费av九九 | 久久涩涩网站 | 香蕉97视频观看在线观看 | 国产中文字幕大全 | av在线播放亚洲 | 国产在线色视频 | 天天夜夜亚洲 | 久操久| 波多野结衣在线视频一区 | 午夜视频在线观看网站 | 黄色小说免费观看 | 成人久久综合 | 国产欧美精品一区二区三区 | 不卡的av电影在线观看 | 欧美一区免费观看 | 91在线精品一区二区 | 66av99精品福利视频在线 | 99精品免费久久久久久久久日本 | 黄色小网站免费看 | 国产一区在线精品 | 97夜夜澡人人双人人人喊 | 成人在线一区二区 | 成人一级在线 | 日本精品久久久一区二区三区 | 成人久久毛片 | 亚洲精品自拍 | 一区二区三区中文字幕在线 | 久久久av电影 | 射久久 | 国产在线美女 | 国产啊v在线 | 亚洲综合最新在线 | 国产午夜在线 | 日韩高清一二区 | 色偷偷中文字幕 | 天天摸天天舔天天操 | 成人免费视频网址 | 日韩大片免费观看 | 又黄又爽的视频在线观看网站 | 丁香花五月 | 91传媒免费观看 | free,性欧美 九九交易行官网 | 免费日韩 精品中文字幕视频在线 | 精品久久在线 | 久久在线观看 | 日韩成人在线一区二区 | 欧美地下肉体性派对 | 四虎成人免费观看 | 三上悠亚在线免费 | 亚洲九九九在线观看 | 日韩免费一二三区 | 国产精品久久毛片 | 狠狠干 狠狠操 | 中文字幕一区二区三区乱码不卡 | 色网站在线免费 | 黄色亚洲免费 | 91在线入口| 亚洲精品www久久久久久 | 一区二区在线不卡 | 久久精品欧美一 | 97av在线视频 | 亚洲一级片在线看 | 国产视频美女 | 在线成人一区二区 | 国产精品美女久久久久久久久 | 91久久在线观看 | 国产精品色婷婷 | 九草视频在线 | 91视频免费视频 | 日本黄色免费观看 | 日韩久久久 | 日日干天天插 | 日韩在线资源 | 久草在线视频在线 | 国产在线视频不卡 | 久久精品一 | 波多野结衣视频一区二区 | 欧美怡红院 | 国产 日韩 欧美 在线 | 国产成本人视频在线观看 | 日韩小视频 | 99国产情侣在线播放 | 粉嫩av一区二区三区四区五区 | 狠狠色丁香婷婷综合橹88 | 中文av网| 免费下载高清毛片 | 97人人澡人人添人人爽超碰 | 免费在线观看黄 | 精品国产大片 | 欧美日本不卡视频 | 天天躁天天狠天天透 | 在线观看精品黄av片免费 | 国产一区二区在线播放 | 国产手机视频精品 | wwxxxx日本 | 中文字幕在线免费播放 | 国产精品九色 | 日韩在线观看 | 成人免费视频网站在线观看 | 欧美黑人性猛交 | 亚洲在线视频观看 | 精品国产欧美 | 亚洲精品在线看 | 激情av网 | 伊人色综合网 | 欧美一级性 | 日日草天天草 | 丝袜精品视频 | 国产视频久| 九九热精品国产 | 狠狠操导航 | 日韩中文字幕a | 一区二区av | 美女av在线免费 | 91精品久久久久久综合五月天 | 97精品国自产拍在线观看 | 国产大陆亚洲精品国产 | 亚洲精品免费在线视频 | 成人a v视频 | 久产久精国产品 | 国产在线观看中文字幕 | 日韩专区av | 日韩大片免费在线观看 | 97网| 射射射综合网 | 综合国产视频 | 99视频播放 | 视频一区二区视频 | 天天干天天在线 | 91精品91| 欧美亚洲成人免费 | 久久免费视频网 | 欧美日韩国产综合一区二区 | 国产一级免费av | 久久亚洲私人国产精品 | 久久国产精品影片 | 欧美性受极品xxxx喷水 | 久久久久黄色 | 亚洲女同ⅹxx女同tv | 三级黄色免费片 | 日韩精品无码一区二区三区 | 日韩在线视频二区 | 免费视频在线观看网站 | 黄色免费网站下载 | 免费情缘| 欧美日比视频 | 欧美一区二区精美视频 | 亚洲成人黄色在线观看 | 欧美日韩一区二区免费在线观看 | 国产高清免费av | 91视频 - 114av | 亚洲一区二区精品 | 亚洲高清在线 | 日韩精品高清不卡 | 精品福利网站 | 中文字幕在线有码 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 91九色蝌蚪 | 亚洲另类视频在线观看 | 五月天免费网站 | 成年人免费电影在线观看 | 在线亚洲成人 | 欧美va天堂va视频va在线 | 91在线免费看片 | 成人黄色电影视频 | 亚洲美女视频网 | 国产精品久久久久久久久蜜臀 | 亚洲三级在线免费观看 | 米奇狠狠狠888 | 九色琪琪久久综合网天天 | 五月婷婷在线播放 | 国产精品第二页 | 国产精品 国内视频 | 成人在线视频论坛 | 网站在线观看你们懂的 | 97人人艹| 五月婷网站 | 欧美va天堂va视频va在线 | 国产免费高清 | 国产高清在线不卡 | 日韩精品免费一区二区三区 | a视频在线 | 毛片www | 亚洲精品小视频 | 97av.com | 国产精品99久久久久 | 国产日韩欧美在线观看 | 91免费在线视频 | 欧美伦理一区二区三区 | 色视频网站在线观看一=区 a视频免费在线观看 | 一级a性色生活片久久毛片波多野 | 精品国产一区二区三区久久久蜜月 | 亚洲日本va午夜在线电影 | 成人免费视频播放 | 欧美成人在线免费观看 | 日韩二级毛片 | 久草在线精品观看 | 免费观看黄色av | 日本精品一区二区三区在线播放视频 | 欧美激情综合五月色丁香 | 91精品国产乱码久久桃 | 亚洲精品三级 | 日本一区二区三区免费看 | 久久久九九 | 黄色最新网址 | 午夜视频在线观看一区二区三区 | www.国产毛片| 日韩女同一区二区三区在线观看 | 99热国产在线观看 | 午夜色婷婷 | 91精品在线免费观看视频 | 成人黄色毛片视频 | 国内成人精品视频 | 蜜臀久久99精品久久久无需会员 | 成人黄色资源 | 国产人成在线视频 | 精品久久中文 | 中文字幕xxxx | 天天做天天爱天天综合网 | 91av精品| 日韩1页| 久久久久久久久久久影视 | 很黄很污的视频网站 | 天天操夜夜看 | 国产福利精品一区二区 | 久久久久久久久久久久亚洲 | 精品国产一区二区三区久久久蜜臀 | 日本夜夜草视频网站 | 8x成人在线 | 国产精品麻豆欧美日韩ww | 97在线看片 | 在线免费中文字幕 | 四虎成人av| 中文在线最新版天堂 | 五月婷婷六月丁香 | 美女久久视频 | 亚洲综合精品视频 | 中文资源在线播放 | 久久人人爽人人人人片 | 国产精品一区二区在线播放 | 久久夜色电影 | 91女神的呻吟细腰翘臀美女 | 精品中文字幕在线 | 色综合久久久久久久久五月 | 国产成人精品一区二区三区在线观看 | 久久免费电影网 | 国产精品九九九九九九 | 亚洲春色奇米影视 | 狠狠色综合网站久久久久久久 | 91丨九色丨蝌蚪丰满 | 九色在线视频 | 在线看v片 | 国产美女被啪进深处喷白浆视频 | 国产99在线免费 | 婷婷色站 | 99久久精品免费 | 四虎成人精品 | 日本性久久 | 一二区av| 日韩高清在线观看 | 国产在线传媒 | 91重口视频 | 亚洲成成品网站 | 中文av影院 | 国产精品不卡在线播放 | 又黄又刺激的视频 | 成人毛片a | 国产一级一片免费播放放a 一区二区三区国产欧美 | 成人网看片 | 久久久国产成人 | 色欧美成人精品a∨在线观看 | 亚洲免费av在线播放 | 午夜精品久久久久久久99热影院 | 人人爱人人射 | 免费av小说| 国产成人高清av | 中文字幕 婷婷 | 高清精品久久 | 99精品欧美一区二区三区 | 亚洲免费不卡 | 日韩欧美在线第一页 | 激情欧美在线观看 | 国产精品免费久久久 | 色婷婷天天干 | 亚洲国产精品资源 | 久久国产精品二国产精品中国洋人 | 一区二区三区四区精品视频 | 久久国产手机看片 | 亚洲国产日韩一区 | 国产精品免费观看国产网曝瓜 | 69亚洲精品 | 精品在线视频观看 | 久草在线观看 | 国产在线观看a | 国产精品白虎 | 国产中年夫妇高潮精品视频 | 久久国产成人午夜av影院宅 | 91在线观看高清 | 亚洲综合欧美日韩狠狠色 | 麻豆视屏 | 欧美激情精品久久久久久免费印度 | 在线免费观看黄色小说 | 人人躁| 欧美日韩国产一二三区 | 欧美激精品 | 人人玩人人添人人 | 天天操天天干天天操天天干 | 免费国产在线观看 | 国产精品美女视频 | 国产99一区| 亚洲国产经典视频 | 亚州精品在线视频 | 亚洲精品视频第一页 | 超碰人人国产 | 欧美日韩高清在线观看 | 九九精品视频在线看 | 探花视频在线观看 | 在线观看免费av片 | 久久毛片高清国产 | 国内一区二区视频 | 亚洲精品小区久久久久久 | 久久久久久久久久网站 | 国产欧美精品xxxx另类 | 成人小视频在线 | 一级黄色片在线观看 | 天天摸日日摸人人看 | 黄色的视频网站 | 久久久精品在线观看 | 欧美a级免费视频 | 久99久中文字幕在线 | 日韩电影黄色 | 最近最新最好看中文视频 | 久久电影中文字幕视频 | 五月婷在线观看 | 奇米影视999 | 99视频| 91中文在线观看 | 97超碰超碰 | 久久精品8 | 五月精品| 日韩在线免费看 | 国产精久久久久久妇女av | 成年人av在线播放 | 欧美视频xxx | 欧美少妇的秘密 | 福利视频入口 | 99热精品国产 | 久久久亚洲国产精品麻豆综合天堂 | 中文字幕av在线 | 久久99中文字幕 | 免费国产在线精品 | 丰满少妇在线观看网站 | 成人在线视频免费观看 | 三日本三级少妇三级99 | 狠狠色狠狠色综合日日小说 | av免费观看高清 | 欧美成a人片在线观看久 | 久久伊人操 | 国产精品久久久一区二区三区网站 | 久久www免费人成看片高清 | 亚洲天堂网在线视频 | 91麻豆福利| 亚洲精品视频偷拍 | 不卡精品 | 在线一区av | 色综合久久精品 | 成人午夜电影在线播放 | 黄色大片日本免费大片 | av综合网址 | 久久精品9 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 国产成视频在线观看 | 91免费高清观看 | 天堂网av 在线 | 欧美 亚洲 另类 激情 另类 | av黄色av| 91精品少妇偷拍99 | 久久精品第一页 | 91精品免费在线 | 成人小视频在线播放 | 9i看片成人免费看片 | 92精品国产成人观看免费 | 日韩在线视频观看 | 黄色国产在线观看 | 超碰在线成人 | 天天色综合久久 | 亚洲欧洲精品一区二区精品久久久 | 一区二区不卡高清 | 97超碰在线久草超碰在线观看 | 99热这里| 91九色国产蝌蚪 | 日韩精品一区二区三区第95 | 在线播放91 | 丁香激情综合国产 | 五月婷婷丁香 | 色综合色综合色综合 | 国产玖玖精品视频 | 在线导航av| 国产热re99久久6国产精品 | 97成人资源站 | 午夜视频不卡 | 午夜精品一区二区三区免费 | 日韩三级中文字幕 | 国产精品系列在线播放 | 黄色1级大片 | 亚洲国产播放 | 欧美日韩在线网站 | 亚洲国产美女精品久久久久∴ | 99精品黄色片免费大全 | 久久综合操 | 波多野结衣一区二区三区中文字幕 | 亚洲精品国产精品久久99热 | 国产 日韩 在线 亚洲 字幕 中文 | 97超碰人人澡人人爱学生 | 中国一级片在线观看 | 欧美性视频网站 | 国语精品免费视频 | 九色在线 | 国产精品视频永久免费播放 | 深夜免费福利网站 | 欧美日韩中文字幕综合视频 | 免费视频一区二区 | 成人亚洲免费 | 99热99热| 成人国产精品久久久久久亚洲 | 国产午夜视频在线观看 | av福利在线 | 欧美精品在线一区二区 | 国产精品一区二区精品视频免费看 | 日韩高清不卡一区二区三区 | 免费视频18 | 91豆麻精品91久久久久久 | 国产一二区免费视频 | 一级特黄aaa大片在线观看 | 黄色日本片 | 久久免费视频在线 | 91av在线免费看 | 四虎精品成人免费网站 | 久久久久网站 | 99久久综合精品五月天 | 天天干夜夜擦 | 亚洲精品欧美视频 | 国产成人在线精品 | 精品亚洲一区二区 | 在线看v片成人 | 亚洲精品66| 日韩videos| 免费观看特级毛片 | 精品一区二区免费在线观看 | 天天操天天色天天射 | 成人免费网站在线观看 | 777奇米四色 | 欧美在线视频一区二区 | 国产精品黄色影片导航在线观看 | 伊人婷婷 | 插久久 | 成人午夜在线电影 | 五月婷婷激情综合 | 国产精品毛片一区二区三区 | 丁香伊人网 | av线上免费观看 | 国产美女免费视频 | 日韩精品视频一二三 | 91亚洲影院 | 伊人开心激情 | 综合网成人 | 国产一区精品在线观看 | 在线观看欧美成人 | av福利网址导航 | 超碰999 | 爱射综合 | 久久久精品久久日韩一区综合 | 亚洲精品国精品久久99热一 | av成人亚洲 | 国产精品国产三级国产aⅴ入口 | 美女久久久久久久久久久 | 中文字幕 国产视频 | 日本夜夜草视频网站 | 欧美日韩午夜爽爽 | 国产不卡在线 | 日韩二三区 | 日韩久久久久久久 | 成人黄色片免费看 | 国产精品久久久久av福利动漫 | 在线精品视频免费播放 | 亚洲激情在线播放 | 九九热精品在线 | 五月丁色 | 天天看天天干 | 中文字幕在线观看资源 | 亚洲夜夜网 | 99爱国产精品 | av高清在线观看 | 久久精品99 | 色偷偷男人的天堂av | 久久精品国产一区二区三区 | 日韩中文在线观看 | 免费日韩视频 | 成人av电影免费在线观看 | 黄色片免费看 | 91完整版观看 | 国产精品久久久久aaaa九色 | 亚洲视频电影在线 | 国产一二区视频 | 久久视频这里有久久精品视频11 | 中文字幕乱码日本亚洲一区二区 | 国产精品久久久久毛片大屁完整版 | 免费视频久久 | 黄色com| 在线观看中文字幕av | 国产精品国产三级国产专区53 | 一级片在线 | 国产精品视频免费在线观看 | 久久久久久久免费看 | 五月婷婷,六月丁香 | 手机成人av在线 | 亚洲精品在线视频播放 | 日韩午夜在线观看 | 国产色道 | 99r在线 | 色香蕉在线 | 国产对白av | 51久久成人国产精品麻豆 | 国产又粗又硬又长又爽的视频 | 伊人五月 | 一区二区精品在线 | 欧美一区免费在线观看 | 九九热精品视频在线观看 | 一本之道乱码区 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久久久福利视频 | 中文字幕超清在线免费 | 狠狠的操你| 欧美一区二区三区在线观看 | 丁香视频五月 | 亚洲乱码国产乱码精品天美传媒 | 亚洲精品久久久久久国 | 91最新网址 | 黄色一级性片 | 天天操天天干天天摸 | 久久午夜国产精品 | 色av资源网 | 色综合久久久久综合体 | 开心色激情网 | 久久中国精品 | 九九九在线观看视频 | 在线观看网站av | 一级片视频在线 | 成人国产网址 | 欧美日韩免费观看一区=区三区 | 一级免费黄视频 | 国产麻豆成人传媒免费观看 | 成人在线视频免费 | 日韩高清一二三区 | 国产亚洲视频在线免费观看 | 色噜噜在线观看视频 | 久久精视频| 亚洲综合成人av | 中文在线免费观看 | 中文字幕 国产精品 | 97久久精品午夜一区二区 | 国产又粗又猛又色又黄视频 | 久久精品看片 | 黄网站色视频 | 911亚洲精品第一 | 丁香六月综合网 | 国产中文在线视频 | 精品国产自在精品国产精野外直播 | 欧美韩国日本在线 | 91精品久久久久久久91蜜桃 | 在线国产能看的 | 日韩高清在线一区二区 | 久久精品九色 | 中国老女人日b | av免费线看 | 亚洲国产三级 | 激情影院在线 | 亚洲视屏一区 | 国产精品久久久网站 | 国产福利一区在线观看 | 手机看片国产日韩 | 久草在线在线精品观看 | 在线观看韩日电影免费 | 久久99视频| av成人免费在线看 | 久久综合激情 | 亚洲黄色区 | 色偷偷男人的天堂av | 亚洲va欧美va人人爽 | 免费看国产曰批40分钟 | 美女视频黄频 | 久久99热久久99精品 | 4p变态网欧美系列 | 91久久在线观看 | 成人欧美在线 | 中文资源在线官网 | 久久免费电影 | 欧美日韩中文另类 | 狠狠操狠狠干天天操 | 在线一级片 | 超碰在线cao | 日韩精品久久久久久中文字幕8 | 91黄视频在线观看 | 一区二区三区四区久久 | 成人在线观看免费 | 成人 亚洲 欧美 | 在线播放亚洲激情 | 日韩在线视频国产 | 中文字幕2021 | 欧美日韩国产在线精品 | 波多野结衣电影久久 | 免费视频久久久久久久 | 国产夫妻性生活自拍 | 日韩在线视频一区 | 成人一级在线观看 | 免费91在线 | 免费看黄网站在线 | 久久国产免| 久草精品在线播放 | 国产资源精品在线观看 | 狠狠操导航 | 香蕉视频亚洲 | 欧美有色 | 精品国产不卡 | 又色又爽的网站 | 欧美男同视频网站 | 日韩在线视频网址 | 久草视频在线免费 | 国产视频亚洲 | 韩国一区视频 | 国产精品一区二区精品视频免费看 | 九九热免费视频在线观看 | 久久精品99国产精品 | 视频福利在线 | 日本女人的性生活视频 | 91精品国自产在线 | 欧美日韩午夜 | 亚洲欧美婷婷六月色综合 | 综合久久2023 | 蜜臀精品久久久久久蜜臀 | 国产精品久久久久久久久岛 | 欧美a级免费视频 | 日韩一区在线播放 | 激情在线五月天 | 中文字幕成人一区 | 美女视频网 | 91高清免费观看 | 免费日韩av电影 | 超碰在线观看av | 婷婷色狠狠| 99999精品| 一本到视频在线观看 | 久99视频| 日韩在线观看的 | 99热精品在线观看 | 成人精品一区二区三区中文字幕 | 天天色天天射天天综合网 | 视频在线播放国产 | 夜夜躁狠狠躁日日躁 | 亚洲精品国产综合久久 | 美女网站黄在线观看 | 在线观看黄色国产 | 少妇av片 | 国产正在播放 | 国内精品久久久久影院男同志 | 婷婷精品进入 | 99se视频在线观看 | 成人一级电影在线观看 | 狠狠干狠狠插 | 国产爽妇网 | 日韩久久久久久久久 | 国产成人精品亚洲 | 在线免费av观看 | 97超碰影视 | 日韩久久一区 | 欧美激情视频一区二区三区免费 | 欧美激情精品一区 | 久久艹国产视频 | 伊人国产在线播放 | 18岁免费看片 | 中文字幕中文字幕中文字幕 | 人人澡人人澡人人 | 亚洲精品在线免费观看视频 | 四季av综合网站 | 久久资源总站 | 狠狠操狠狠 | 国产欧美精品在线观看 | 精品国产欧美一区二区三区不卡 | 亚洲日本欧美在线 | 国产一区在线看 | 成在线播放| 又爽又黄又刺激的视频 | 久久伦理| 国产在线观看黄 | 天天干天天摸 | 国产精品美女久久久久久久久 | 九九综合久久 | 久久久久久久影视 | 国产精品自拍av | 国产不卡一 | 色偷偷88888欧美精品久久 | 亚洲国产影院 | 久久国产精品99精国产 | 香蕉视频最新网址 | 黄色大片国产 | 国产成人精品一区在线 | 亚洲区精品视频 | 夜夜躁天天躁很躁波 | 久久中国精品 | 欧美激情综合色综合啪啪五月 | 国产va饥渴难耐女保洁员在线观看 | 亚洲精品国产精品国自产 | 色在线免费观看 | 午夜久操 | 国产韩国精品一区二区三区 | 国产成人三级三级三级97 | 在线观看免费av片 | 毛片永久新网址首页 | 久久优 | 97在线观看视频国产 | 天天操天天添天天吹 | 99精品在线免费 | 乱男乱女www7788 | 99精品久久久久 | 97理论电影| 成人精品久久久 | 日韩一区二区三区免费视频 | 亚洲va男人天堂 | 亚洲黄色在线 | 成人影片在线免费观看 | 五月天色丁香 | 久久99精品热在线观看 | 三级av网 | 国内成人综合 | 精品在线观 | 久草电影在线观看 | 午夜精选视频 | 日韩精品中文字幕av | 色婷婷久久 | 日韩视频在线观看免费 | 国产又粗又猛又黄又爽视频 | 国产xxxx做受性欧美88 | 国产黄色免费 | 中文欧美字幕免费 | 看黄色91 | 亚洲经典精品 | 成人在线黄色 | 韩国在线一区二区 | 夜夜夜夜爽 |