亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

NumberPicker實(shí)現(xiàn)滑動(dòng)選擇

zhaot / 779人閱讀

摘要:使用實(shí)現(xiàn)滑動(dòng)選擇可實(shí)現(xiàn)省市聯(lián)動(dòng)最近使用了一個(gè)控件該控件可以實(shí)現(xiàn)省市區(qū)聯(lián)動(dòng)以及其他各種滑動(dòng)選擇,這里只是簡(jiǎn)單的記錄下如何使用。

NumberPicker使用,實(shí)現(xiàn)滑動(dòng)選擇(可實(shí)現(xiàn)省市聯(lián)動(dòng))

最近使用了一個(gè)控件NumberPicker,該控件可以實(shí)現(xiàn)省市區(qū)聯(lián)動(dòng)以及其他各種滑動(dòng)選擇,這里只是簡(jiǎn)單的記錄下如何使用。
效果圖:

先是xml文件:



   

接下來(lái)是Activity的代碼:

public class MainActivity extends AppCompatActivity implements NumberPicker.Formatter{

    private NumberPicker mNumberPicker;
    private String[] mCities  = {"北京","上海","廣州","深圳","杭州","青島","西安"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTheme(R.style.AppTheme);
        setContentView(R.layout.activity_main);
        mNumberPicker = (NumberPicker)findViewById(R.id.number_picker);
        mNumberPicker.setDisplayedValues(mCities);//設(shè)置需要顯示的數(shù)組
        mNumberPicker.setMinValue(0);
        mNumberPicker.setMaxValue(mCities.length - 1);//這兩行不能缺少,不然只能顯示第一個(gè),關(guān)聯(lián)到format方法
        setPickerDividerColor();

        setNumberPickerTextColor(mNumberPicker,Color.RED);
    }

    //這個(gè)方法是根據(jù)index 格式化先生的文字,需要先 implements NumberPicker.Formatter
    @Override
    public String format(int value) {
        return mCities[value];
    }

    /**
     * 通過(guò)反射改變分割線顏色,
     */
    private void setPickerDividerColor() {
        Field[] pickerFields = NumberPicker.class.getDeclaredFields();
        for (Field pf : pickerFields) {
            if (pf.getName().equals("mSelectionDivider")) {
                pf.setAccessible(true);
                try{
                    pf.set(mNumberPicker,new ColorDrawable(Color.BLUE));
                }catch (IllegalAccessException e) {
                    e.printStackTrace();
                }catch (Resources.NotFoundException e) {
                    e.printStackTrace();
                }catch (IllegalArgumentException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    /**
     * 過(guò)反射改變文字的顏色
     * @param numberPicker
     * @param color
     * @return
     */
    public static boolean setNumberPickerTextColor(NumberPicker numberPicker, int color)
    {
        final int count = numberPicker.getChildCount();
        for(int i = 0; i < count; i++){
            View child = numberPicker.getChildAt(i);
            if(child instanceof EditText){
                try{
                    Field selectorWheelPaintField = numberPicker.getClass()
                            .getDeclaredField("mSelectorWheelPaint");
                    selectorWheelPaintField.setAccessible(true);
                    ((Paint)selectorWheelPaintField.get(numberPicker)).setColor(color);
                    ((EditText)child).setTextColor(color);
                    numberPicker.invalidate();
                    return true;
                }
                catch(NoSuchFieldException e){
                    Log.w("setTextColor", e);
                }
                catch(IllegalAccessException e){
                    Log.w("setTextColor", e);
                }
                catch(IllegalArgumentException e){
                    Log.w("setTextColor", e);
                }
            }
        }
        return false;
    }
}

以上就是NumberPicker的簡(jiǎn)單使用了,可以用它實(shí)現(xiàn)省市區(qū)聯(lián)動(dòng)(3個(gè)NumberPicker),也可以實(shí)現(xiàn)充值打折金額滑動(dòng)選擇(比如充100(實(shí)付:90))等等.通過(guò)反射改變分割線的方法是在stackoverflow上看到的:
改變分割線顏色:http://stackoverflow.com/ques...
改變文字顏色:http://stackoverflow.com/ques...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/66668.html

相關(guān)文章

  • 如何造一個(gè)移動(dòng)端的聯(lián)動(dòng)選擇器(二)

    摘要:寫(xiě)在前面之前寫(xiě)了一篇為移動(dòng)端而生的自定義多級(jí)聯(lián)動(dòng)選擇器,得到了很多人的關(guān)注。預(yù)知后話地址為移動(dòng)端而生的自定義多級(jí)聯(lián)動(dòng)選擇器到此,的操作和手勢(shì)算法就已經(jīng)基本掌握了。 寫(xiě)在前面 之前寫(xiě)了一篇 MultiPicker -『為移動(dòng)端而生』的自定義多級(jí)聯(lián)動(dòng)選擇器,得到了很多人的關(guān)注。鑒于很多人對(duì)這種手寫(xiě)插件的過(guò)程很好奇,所以寫(xiě)了幾篇文章,來(lái)說(shuō)說(shuō)它的成長(zhǎng)史~ 在閱讀本文之前,確保你有稍微看過(guò) Mu...

    leeon 評(píng)論0 收藏0
  • 如何造一個(gè)移動(dòng)端的聯(lián)動(dòng)選擇器(二)

    摘要:寫(xiě)在前面之前寫(xiě)了一篇為移動(dòng)端而生的自定義多級(jí)聯(lián)動(dòng)選擇器,得到了很多人的關(guān)注。預(yù)知后話地址為移動(dòng)端而生的自定義多級(jí)聯(lián)動(dòng)選擇器到此,的操作和手勢(shì)算法就已經(jīng)基本掌握了。 寫(xiě)在前面 之前寫(xiě)了一篇 MultiPicker -『為移動(dòng)端而生』的自定義多級(jí)聯(lián)動(dòng)選擇器,得到了很多人的關(guān)注。鑒于很多人對(duì)這種手寫(xiě)插件的過(guò)程很好奇,所以寫(xiě)了幾篇文章,來(lái)說(shuō)說(shuō)它的成長(zhǎng)史~ 在閱讀本文之前,確保你有稍微看過(guò) Mu...

    ivyzhang 評(píng)論0 收藏0
  • 如何造一個(gè)移動(dòng)端的聯(lián)動(dòng)選擇器(二)

    摘要:寫(xiě)在前面之前寫(xiě)了一篇為移動(dòng)端而生的自定義多級(jí)聯(lián)動(dòng)選擇器,得到了很多人的關(guān)注。預(yù)知后話地址為移動(dòng)端而生的自定義多級(jí)聯(lián)動(dòng)選擇器到此,的操作和手勢(shì)算法就已經(jīng)基本掌握了。 寫(xiě)在前面 之前寫(xiě)了一篇 MultiPicker -『為移動(dòng)端而生』的自定義多級(jí)聯(lián)動(dòng)選擇器,得到了很多人的關(guān)注。鑒于很多人對(duì)這種手寫(xiě)插件的過(guò)程很好奇,所以寫(xiě)了幾篇文章,來(lái)說(shuō)說(shuō)它的成長(zhǎng)史~ 在閱讀本文之前,確保你有稍微看過(guò) Mu...

    wslongchen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

zhaot

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<