最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 滾動(dòng)時(shí)間選擇的示例代碼

 更新時(shí)間:2020年12月15日 08:45:05   作者:代碼君哈哈  
這篇文章主要介紹了Android 滾動(dòng)時(shí)間選擇的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

效果圖 復(fù)制代碼直接用?。。?!

在這里插入圖片描述

在這里插入圖片描述

1.導(dǎo)入依賴

implementation 'com.bigkoo:pickerview:2.1.0'

2.三個(gè)bean類(lèi)
PickerViewData

public class PickerViewData implements IPickerViewData {
  private String content;

  public PickerViewData(String content) {
    this.content = content;
  }

  public void setContent(String content) {
    this.content = content;
  }

  @Override
  public String getPickerViewText() {
    return content;
  }
}

ProvinceBean

public class ProvinceBean implements IPickerViewData {
  private long id;
  private String name;
  private String description;
  private String others;

  public ProvinceBean(long id,String name,String description,String others){
    this.id = id;
    this.name = name;
    this.description = description;
    this.others = others;
  }

  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public String getDescription() {
    return description;
  }

  public void setDescription(String description) {
    this.description = description;
  }

  public String getOthers() {
    return others;
  }

  public void setOthers(String others) {
    this.others = others;
  }

  //這個(gè)用來(lái)顯示在PickerView上面的字符串,PickerView會(huì)通過(guò)IPickerViewData獲取getPickerViewText方法顯示出來(lái)。
  @Override
  public String getPickerViewText() {
    return name;
  }
}

TimeBean

public class TimeBean implements IPickerViewData {
  private String time;

  public TimeBean(String time) {
    this.time = time;
  }

  public String getTime() {
    return time;
  }

  public void setTime(String time) {
    this.time = time;
  }

  @Override
  public String getPickerViewText() {
    return time;
  }
}

3,布局文件activity_main

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >
  <TextView
    android:layout_margin="50dp"
    android:id="@+id/tvTime"
    android:text="時(shí)間"
    android:layout_width="match_parent"
    android:layout_height="50dp"/>
  <TextView
    android:id="@+id/tvOptions"
    android:layout_margin="50dp"
    android:layout_below="@+id/tvTime"
    android:text="條件"
    android:layout_width="match_parent"
    android:layout_height="50dp"/>

  <View
    android:id="@+id/vMasker"
    android:visibility="gone"
    android:background="#e0000000"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

</RelativeLayout>

4.MainActivity

public class MainActivity extends Activity {


  private ArrayList<TimeBean> options1Items = new ArrayList<>();
  private ArrayList<ArrayList<String>> options2Items = new ArrayList<>();
  private ArrayList<ArrayList<ArrayList<IPickerViewData>>> options3Items = new ArrayList<>();
  private TextView tvTime, tvOptions;
  TimePickerView pvTime;
  OptionsPickerView pvOptions;
  View vMasker;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    vMasker=findViewById(R.id.vMasker);
    tvTime=(TextView) findViewById(R.id.tvTime);
    tvOptions=(TextView) findViewById(R.id.tvOptions);
    //時(shí)間選擇器
    pvTime = new TimePickerView(this, TimePickerView.Type.MONTH_DAY_HOUR_MIN);
    //控制時(shí)間范圍
//    Calendar calendar = Calendar.getInstance();
//    pvTime.setRange(calendar.get(Calendar.YEAR) - 20, calendar.get(Calendar.YEAR));//要在setTime 之前才有效果哦
    pvTime.setTime(new Date());
    pvTime.setCyclic(false);
    pvTime.setCancelable(true);
    //時(shí)間選擇后回調(diào)
    pvTime.setOnTimeSelectListener(new TimePickerView.OnTimeSelectListener() {

      @Override
      public void onTimeSelect(Date date) {
        tvTime.setText(getTime(date));
      }
    });
    //彈出時(shí)間選擇器
    tvTime.setOnClickListener(new View.OnClickListener() {

      @Override
      public void onClick(View v) {
        pvTime.show();
      }
    });


    //選項(xiàng)選擇器
    pvOptions = new OptionsPickerView(this);
    //選項(xiàng)1
    options1Items.add(new TimeBean("現(xiàn)在"));
    options1Items.add(new TimeBean("今天"));
    options1Items.add(new TimeBean("明天"));
    options1Items.add(new TimeBean("后天"));


    //選項(xiàng) 1 2
    ArrayList<String> options2Items_01=new ArrayList<>();
    options2Items_01.add("--");

    //22
    ArrayList<String> options2Items_02=getTodayHourData();
    //32
    ArrayList<String> options2Items_03=getHourData();
    //32
    ArrayList<String> options2Items_04=getHourData();

    options2Items.add(options2Items_01);
    options2Items.add(options2Items_02);
    options2Items.add(options2Items_03);
    options2Items.add(options2Items_04);

    //選項(xiàng)3
    ArrayList<ArrayList<IPickerViewData>> options3Items_01 = new ArrayList<>();
    ArrayList<ArrayList<IPickerViewData>> options3Items_02 = new ArrayList<>();
    ArrayList<ArrayList<IPickerViewData>> options3Items_03 = new ArrayList<>();
    ArrayList<ArrayList<IPickerViewData>> options3Items_04 = new ArrayList<>();


    ArrayList<IPickerViewData> options3Items_01_01=new ArrayList<>();
    options3Items_01_01.add(new PickerViewData("--"));
    options3Items_01.add(options3Items_01_01);
    options3Items_02 =getmD2();
    options3Items_03 =getmD();
    options3Items_04 =getmD();



    options3Items.add(options3Items_01);
    options3Items.add(options3Items_02);
    options3Items.add(options3Items_03);
    options3Items.add(options3Items_04);


    //三級(jí)聯(lián)動(dòng)效果
    pvOptions.setPicker(options1Items, options2Items, options3Items, true);
    //設(shè)置選擇的三級(jí)單位
//    pwOptions.setLabels("省", "市", "區(qū)");
    pvOptions.setTitle(" ");
    pvOptions.setCyclic(false, false, false);
    //設(shè)置默認(rèn)選中的三級(jí)項(xiàng)目
    //監(jiān)聽(tīng)確定選擇按鈕
    pvOptions.setSelectOptions(0, 0, 0);
    pvOptions.setOnoptionsSelectListener(new OptionsPickerView.OnOptionsSelectListener() {

      @Override
      public void onOptionsSelect(int options1, int option2, int options3) {
        //返回的分別是三個(gè)級(jí)別的選中位置
        String tx = options1Items.get(options1).getPickerViewText()
            + options2Items.get(options1).get(option2)
            + options3Items.get(options1).get(option2).get(options3).getPickerViewText();
        tvOptions.setText(tx);
        vMasker.setVisibility(View.GONE);
      }
    });
    //點(diǎn)擊彈出選項(xiàng)選擇器
    tvOptions.setOnClickListener(new View.OnClickListener() {

      @Override
      public void onClick(View v) {
        pvOptions.show();
      }
    });
  }

  public static String getTime(Date date) {
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    return format.format(date);
  }

  @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
      if(pvOptions.isShowing()||pvTime.isShowing()){
        pvOptions.dismiss();
        pvTime.dismiss();
        return true;
      }
      if(pvTime.isShowing()){
        pvTime.dismiss();
        return true;
      }
    }
    return super.onKeyDown(keyCode, event);
  }

  /**
   * 今天 點(diǎn)
   */
  private ArrayList<String> getTodayHourData(){
    int max =currentHour();
    if (max<23&&currentMin()>45){
      max=max+1;
    }
    ArrayList<String> lists=new ArrayList<>();
    for (int i=max;i<24;i++){
      lists.add(i+"點(diǎn)");
    }
    return lists;
  }

  /**
   * 明天 后天 點(diǎn)
   */
  private ArrayList<String> getHourData(){
    ArrayList<String> lists=new ArrayList<>();
    for (int i=0;i<24;i++){
      lists.add(i+"點(diǎn)");
    }
    return lists;
  }

  /**
   * 明天 后天 分
   */
  private ArrayList<IPickerViewData> getMinData(){
    ArrayList<IPickerViewData> dataArrayList=new ArrayList<>();
    for (int i=0;i<6;i++){
      dataArrayList.add(new PickerViewData((i*10)+"分"));
    }
    return dataArrayList;
  }
  /**
   * 明天 后天
   */
  private ArrayList<ArrayList<IPickerViewData>> getmD(){
    ArrayList<ArrayList<IPickerViewData>> d=new ArrayList<>();
    for (int i=0;i<24;i++){
      d.add(getMinData());
    }
    return d;
  }

  /**
   * 明天 后天 2222
   */
  private ArrayList<ArrayList<IPickerViewData>> getmD2(){
    //14
    int max =currentHour();
    if (currentMin()>45){
      max=max+1;
    }
    int value =24-max;
    ArrayList<ArrayList<IPickerViewData>> d=new ArrayList<>();
    for (int i=0;i<value;i++){
      if (i==0){
        d.add(getTodyMinData());
      }else {
        d.add(getMinData());
      }

    }
    return d;
  }

  /**
   * 明天 后天 分2222
   */
  private ArrayList<IPickerViewData> getTodyMinData(){

    int min = currentMin();
    int current=0;
    if (min>35&&min<=45){
      current =0;
    }else if (min>45&&min<=55){
      current=1;
    } else if (min>55){
      current=2;
    }else if (min<=5){
      current=2;
    }else if (min>5&&min<=15){
      current=3;
    }else if (min>15&&min<=25){
      current=4;
    }else if (min>25&&min<=35){
      current=5;
    }
    int max =currentHour();
    if (max>23&& min>35){
      current=5;
    }

    ArrayList<IPickerViewData> dataArrayList=new ArrayList<>();
    for (int i=current;i<6;i++){
      dataArrayList.add(new PickerViewData((i*10)+"分"));
    }
    return dataArrayList;
  }

  private int currentMin(){
    Calendar cal = Calendar.getInstance();
    return cal.get(Calendar.MINUTE);
  }


  private int currentHour(){
    Calendar cal = Calendar.getInstance();
    return cal.get(Calendar.HOUR_OF_DAY);
  }
}

到此這篇關(guān)于Android 滾動(dòng)時(shí)間選擇的示例代碼的文章就介紹到這了,更多相關(guān)Android 滾動(dòng)時(shí)間選擇內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android 中 Fragment 嵌套 Fragment使用存在的bug附完美解決方案

    Android 中 Fragment 嵌套 Fragment使用存在的bug附完美解決方案

    本文從兩個(gè)方面淺析Android 中 Fragment 嵌套 Fragment使用存在的bug問(wèn)題,原因找到就可以完美的解決了,對(duì)fragment嵌套fragment使用相關(guān)知識(shí)感興趣的朋友一起看看吧
    2016-08-08
  • Android獲取文字高度的三種方法

    Android獲取文字高度的三種方法

    這篇文章主要給大家介紹了Android獲取文字高度的三種方法,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Android上實(shí)現(xiàn)easyconfig(airkiss)方法

    Android上實(shí)現(xiàn)easyconfig(airkiss)方法

    本篇文章主要給大家講解了在Android系統(tǒng)上實(shí)現(xiàn)easyconfig(airkiss)的方法,有這方面需要的朋友參考學(xué)習(xí)下吧。
    2018-01-01
  • Android基礎(chǔ)知識(shí)之單點(diǎn)觸摸

    Android基礎(chǔ)知識(shí)之單點(diǎn)觸摸

    這篇文章主要為大家詳細(xì)介紹了Android基礎(chǔ)知識(shí)之單點(diǎn)觸摸,很簡(jiǎn)單的操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Android開(kāi)發(fā)graphics?bufferqueue整體流程

    Android開(kāi)發(fā)graphics?bufferqueue整體流程

    這篇文章主要為大家介紹了Android開(kāi)發(fā)graphics?bufferqueue整體流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • ObjectAnimator屬性動(dòng)畫(huà)源碼分析篇

    ObjectAnimator屬性動(dòng)畫(huà)源碼分析篇

    今天小編就為大家分享一篇關(guān)于ObjectAnimator屬性動(dòng)畫(huà)源碼分析篇,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Android Handler主線程和一般線程通信的應(yīng)用分析

    Android Handler主線程和一般線程通信的應(yīng)用分析

    本篇文章小編為大家介紹,Android Handler主線程和一般線程通信的應(yīng)用分析。需要的朋友參考下
    2013-04-04
  • 簡(jiǎn)單實(shí)現(xiàn)Android數(shù)獨(dú)游戲

    簡(jiǎn)單實(shí)現(xiàn)Android數(shù)獨(dú)游戲

    這篇文章主要教大家如何簡(jiǎn)單實(shí)現(xiàn)Android數(shù)獨(dú)游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android中TextView自動(dòng)適配文本大小的幾種解決方案

    Android中TextView自動(dòng)適配文本大小的幾種解決方案

    在布局中使用的話,注意按照你最大的設(shè)備來(lái)設(shè)置字體大小,這樣在小設(shè)備上回自動(dòng)縮放,下面這篇文章主要給大家介紹了關(guān)于Android中TextView自動(dòng)適配文本大小的幾種解決方案,需要的朋友可以參考下
    2022-06-06
  • Android如何實(shí)現(xiàn)時(shí)間線效果(下)

    Android如何實(shí)現(xiàn)時(shí)間線效果(下)

    上一篇文章我們講了Android如何實(shí)現(xiàn)時(shí)間線效果,今天計(jì)息上一回的文章圍繞Android實(shí)現(xiàn)時(shí)間線效果內(nèi)容展開(kāi)更多,需要的朋友可以參考一下
    2021-11-11

最新評(píng)論

南木林县| 定襄县| 青龙| 格尔木市| 穆棱市| 霍林郭勒市| 准格尔旗| 梓潼县| 突泉县| 衡东县| 砚山县| 贵定县| 赣榆县| 疏附县| 桑植县| 交口县| 囊谦县| 茌平县| 如东县| 新巴尔虎左旗| 大洼县| 涪陵区| 兰州市| 鸡东县| 平遥县| 德化县| 穆棱市| 青龙| 黔南| 长海县| 德州市| 桦川县| 通江县| 嵊泗县| 平南县| 前郭尔| 沁源县| 凤阳县| 抚宁县| 桑日县| 泰来县|