通訊錄中使用到的A Z字元選擇器

2021-09-01 10:10:50 字數 2171 閱讀 1906

先看效果:

實現起來也很簡單,就乙個類,注釋都有。

直接看**:

/**

* the component of a to z letter bar.

* 這個就是a-z字元選擇器

* * @author michaelye

* @since 2012-8-22

* */

public class atozletterbar extends view

; int choose = -1;

paint paint = new paint();

boolean showbkg = false;

private drawable thumbdrawable;

public atozletterbar(context context, attributeset attrs, int defstyle)

public atozletterbar(context context, attributeset attrs)

public atozletterbar(context context)

private void init(context context)

@override

protected void ondraw(canvas canvas)

//在手指接觸螢幕的地方繪製

thumbdrawable.setbounds(0, location - 60, this.getwidth(), location + 60);

thumbdrawable.draw(canvas);

int height = getheight();

int width = getwidth();

int singleheight = height / b.length;

for(int i=0;i= 0 && c< b.length)//這裡的c要》=0,不然第乙個字母不能正常顯示

}break;

case motionevent.action_move:

if(oldchoose != c && listener != null)

}break;

case motionevent.action_up:

showbkg = false;

choose = -1;

invalidate();

break;

}return true;

} @override

public boolean ontouchevent(motionevent event)

public void setontouchingletterchangedlistener(ontouchingletterchangedlistener ontouchingletterchangedlistener)

/*** 定義乙個介面,用來傳遞所觸控的字元

* * */

public inte***ce ontouchingletterchangedlistener

}

在布局檔案中定義:

<?xml version="1.0" encoding="utf-8"?>

在activity中使用

/**

* this activity shows how to use the component of atozletterlistview

* * 這個類演示了如何使用字元選擇器

* * @author michaelye

* @since 2012-8-22

* */

public class mainactivity extends activity

};azbar.setontouchingletterchangedlistener(listener);

}/**

* use runnable to make textview gone

* * 通過使用runnable來控制textview的不可見

* */

private class overlaythread implements runnable }}

發現問題歡迎指正。

通訊錄中的特殊字元

絕大多數註冊類應用都會選擇使用手機號作為使用者的註冊的賬號,由於鍵盤上有限的字元基本都是常用的手動輸入的手機號的合法性比較容易控制.但是如果使用者選擇貼上的複製的方式就會混進來一些特殊的字元造成判斷上的異常.在自帶系統是ios 11.0 的裝置上覆制聯絡歷史中的手機號時,發現複製之後的手機號出了空格...

字串 通訊錄排序

7 5 通訊錄排序 20 分 輸入n個朋友的資訊,包括姓名 生日 號碼,本題要求編寫程式,按照年齡從大到小的順序依次輸出通訊錄。題目保證所有人的生日均不相同。輸入第一行給出正整數n 10 隨後n行,每行按照 姓名 生日 號碼 的格式給出一位朋友的資訊,其中 姓名 是長度不超過10的英文本母組成的字串...

通訊錄的實現

ifndef contacts h define contacts h define name length 20 define length 10 define tele length 11 define addr length 30 define max 1000 struct peoplein...