欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

android怎么實(shí)現(xiàn)條目倒計(jì)時(shí)功能

這篇文章將為大家詳細(xì)講解有關(guān)android怎么實(shí)現(xiàn)條目倒計(jì)時(shí)功能,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)自成立以來(lái),一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開(kāi)發(fā)等基于互聯(lián)網(wǎng)的全面整合營(yíng)銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開(kāi)發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開(kāi)發(fā)工程師團(tuán)隊(duì)及專業(yè)的網(wǎng)站設(shè)計(jì)師團(tuán)隊(duì)。

網(wǎng)上對(duì)于這樣的功能已經(jīng)是泛濫成河了,但是最近遇到這樣的一個(gè)需求,還是要值得我們學(xué)習(xí)一下,并將他記錄下來(lái)。

布局文件:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="com.example.rui.demo.list_count_down.ListCountDownActivity">

 <android.support.v7.widget.RecyclerView
 android:id="@+id/rv_list_count_down"
 android:layout_width="match_parent"
 android:layout_height="match_parent">

 </android.support.v7.widget.RecyclerView>
</FrameLayout>

Activity界面:

public class ListCountDownActivity extends AppCompatActivity {

 RecyclerView mRecyclerView;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_list_count_down);
 initView();

 }

 private void initView() {
 mRecyclerView = (RecyclerView) findViewById(R.id.rv_list_count_down);
 mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
 CountDownAdapter adapter = new CountDownAdapter();
 mRecyclerView.setAdapter(adapter);
 List<DataInfo> list = new ArrayList<>();
 for (int i = 1; i < 101; i++) {
  list.add(new DataInfo("我是條目" + i, i * 100));
 }
 adapter.setmDatas(list);
 }
}

倒計(jì)時(shí)條目適配器:

/**
 * @Date 2018/4/26
 * @Introduction 倒計(jì)時(shí)條目適配器
 */

public class CountDownAdapter extends RecyclerView.Adapter<CountDownAdapter.MyViewHoder> {

 private final String TAG = CountDownAdapter.class.getSimpleName();

 private final int STOP = 0x01;
 private final int START = 0x02;
 private final int LOOP = 0x03;

 private List<DataInfo> mDatas;

 public CountDownAdapter() {
 }

 public void setmDatas(List<DataInfo> mDatas) {
 this.mDatas = mDatas;
 notifyDataSetChanged();
 }

 @Override
 public MyViewHoder onCreateViewHolder(ViewGroup parent, int viewType) {
 return new MyViewHoder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_count_down, parent, false));
 }

 @Override
 public void onBindViewHolder(final MyViewHoder holder, int position) {
 final DataInfo info = mDatas.get(position);
 holder.tvName.setText(info.getName());
 holder.tvTime.setText(info.getTime() + "");
 if (info.isCountDown()) {
  holder.btnStart.setText("停止");
 } else {
  holder.btnStart.setText("開(kāi)始");
 }
 holder.btnStart.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view) {
  Message msg = Message.obtain();
  if (!info.isCountDown()) {
   holder.btnStart.setText("停止");
   msg.what = START;
  } else {
   holder.btnStart.setText("開(kāi)始");
   msg.what = STOP;
  }
  msg.obj = info;
  mHandler.sendMessage(msg);
  info.setCountDown(!info.isCountDown());
  }
 });
 }

 @Override
 public int getItemCount() {
 return mDatas == null ? 0 : mDatas.size();
 }

 static class MyViewHoder extends RecyclerView.ViewHolder {

 private final TextView tvName;
 private final TextView tvTime;
 private final Button btnStart;

 public MyViewHoder(View itemView) {
  super(itemView);
  tvName = (TextView) itemView.findViewById(R.id.tv_name_count_down_item);
  tvTime = (TextView) itemView.findViewById(R.id.tv_time_count_down_item);
  btnStart = (Button) itemView.findViewById(R.id.btn_time_count_down_item);
 }
 }

 private Handler mHandler = new Handler() {

 private List<DataInfo> mCountDownList = new ArrayList<>();

 @Override
 public void handleMessage(Message msg) {
  setChange(msg);
 }

 private synchronized void setChange(Message msg) {
  switch (msg.what) {
  case STOP:
   DataInfo stopInfo = (DataInfo) msg.obj;
   Log.e(TAG, "------------stop:" + stopInfo.getName());
   mCountDownList.remove(stopInfo);
   notifyDataSetChanged();
   if (mCountDownList.size() <= 0) {
   mHandler.removeCallbacksAndMessages(null);
   }
   break;
  case START:
   DataInfo startInfo = (DataInfo) msg.obj;
   Log.e(TAG, "------------start:" + startInfo.getName());
   if (startInfo.getTime() > 0) {
   mCountDownList.add(startInfo);
   mHandler.sendEmptyMessageDelayed(LOOP, 1000);
   }
   break;
  case LOOP:
   if (mCountDownList.size() <= 0) {
   return;
   }
   for (Iterator<DataInfo> iterator = mCountDownList.iterator(); iterator.hasNext(); ) {
   DataInfo dataInfo = iterator.next();
   int time = dataInfo.getTime();
   time--;
   dataInfo.setTime(time);
   if (time <= 0) {
    iterator.remove();
   }
   }
   notifyDataSetChanged();
   mHandler.removeCallbacksAndMessages(null);
   mHandler.sendEmptyMessageDelayed(LOOP, 1000);
   break;
  default:
   break;
  }
 }
 };
}

JavaBean類

/**
 * @Date 2018/4/26
 * @Introduction 倒計(jì)時(shí)數(shù)據(jù)實(shí)體類
 */

public class DataInfo {
 private String name;
 private int time;
 private boolean isCountDown = false;

 public DataInfo(String name, int time) {
 this.name = name;
 this.time = time;
 }

 public String getName() {
 return name;
 }

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

 public int getTime() {
 return time;
 }

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

 public boolean isCountDown() {
 return isCountDown;
 }

 public void setCountDown(boolean countDown) {
 isCountDown = countDown;
 }
}

關(guān)于“android怎么實(shí)現(xiàn)條目倒計(jì)時(shí)功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

文章題目:android怎么實(shí)現(xiàn)條目倒計(jì)時(shí)功能
分享URL:http://aaarwkj.com/article14/pjdhde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、App設(shè)計(jì)建站公司、網(wǎng)站導(dǎo)航、營(yíng)銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
99精品欧美日韩在线播放| 日本中文字幕一区在线观看| 男女午夜激情啪啪视频| 久久精品国产普通话对白| 精品久久人人做爽综合| av在线播放网址网站| 一区二区日韩激情在线观看视频| 黄片色呦呦视频免费看| 中文字幕日韩av综合在线| 性色av人妻中文一区二区| 欧美另类不卡在线观看| 中文字幕久精品视频免费| 日韩高清不卡免费视频| 国产91美女黄色在线观看| 蜜臀av人妻一区二区三区| 亚洲精品一区av在线观看| 国产亚洲综合久久系列| 免费国产黄片在线播放| 伊人激情一区二区三区| 国产91日韩欧美在线观看| 日韩色图在线观看视频| 国产精品毛片av在线| 久久精品国产av一一区| 风间由美亚洲一区二区三区| 麻豆AV一区二区三区久久| 久久精人妻一区二区三区| 中文字幕日韩av综合在线| 丝袜美腿诱惑国产在线| 男女午夜激情四射视频| 精品一区二区三区乱码中文| 国产亚洲精品国产福利久久| 成人国产精品三上悠亚久久| 亚洲一区二区三区免费观看视频| 国产黄片一区二区不卡| 亚洲欧洲成熟熟女妇专区乱| 日本成人精品二区在线观看| 伊人性伊人情亚洲综合| 99中文字幕国产精品| 精品人妻中文字幕在线| 在线观看一区二区三区国产视频| 国产精品传媒在线观看网站|