Get the App
SLTechnology News&Howtos  ›  Development  › 

How to use timer and countdown to realize Taobao second kill function in Android

Shulou Source: shulou.com Published: 2022-06-01 00:18:43 10月04日 Update

This article mainly introduces the Android how to use timer and countdown to achieve Taobao second kill function related knowledge, the content is detailed and easy to understand, simple and fast operation, has a certain reference value, I believe you read this Android how to use timer and countdown to achieve Taobao second kill function article will have a harvest, let's take a look at it.

Directory structure

Effect picture:

ImageViewHolder

Public class imageViewHolder extends RecyclerView.ViewHolder {public ImageView imageView; public imageViewHolder (View itemView) {super (itemView); imageView = (ImageView) itemView;}}

MyViewHolder

Public class MyViewHolder extends RecyclerView.ViewHolder {public TextView textView; public MyViewHolder (View itemView) {super (itemView); textView = (TextView) itemView;}}

RecycleAdapter

Package com.nodeprogress.snapupview.SnapUp; import android.content.Context; import android.graphics.Color; import android.support.v7.widget.RecyclerView; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; public class recycleAdapter extends RecyclerView.Adapter {Context context; public recycleAdapter (Context context) {this.context = context;} @ Override public RecyclerView.ViewHolder onCreateViewHolder (ViewGroup parent, int viewType) {if (viewType = = 0) {return new imageViewHolder (new ImageView (context)) } else {return new MyViewHolder (new TextView (context));} @ Override public void onBindViewHolder (RecyclerView.ViewHolder holder, int position) {if (getItemViewType (position) = = 0) {imageViewHolder viewHolder = (imageViewHolder) holder; viewHolder.imageView.setPadding; viewHolder.imageView.setBackgroundColor (Color.BLUE);} else {MyViewHolder viewHolder = (MyViewHolder) holder; viewHolder.textView.setText ("Taobao" + position) } @ Override public int getItemCount () {return 21;} @ Override public int getItemViewType (int position) {return (position = = 20)? 0: 1;}}

MainActivity

Package com.nodeprogress.snapupview; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import com.nodeprogress.snapupview.SnapUp.recycleAdapter; import com.nodeprogress.snapupview.View.HorizontalRecycleViewLoadMore; public class MainActivity extends AppCompatActivity {@ Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); HorizontalRecycleViewLoadMore recyclerView = (HorizontalRecycleViewLoadMore) findViewById (R.id.recycle); recyclerView.setAdapter (new recycleAdapter (MainActivity.this)) SnapUpCountDownTimerView rushBuyCountDownTimerView = (SnapUpCountDownTimerView) findViewById (R.id.RushBuyCountDownTimerView); rushBuyCountDownTimerView.setTime (1pm 55); rushBuyCountDownTimerView.start ();}}

SnapUpCountDownTimerView

Package com.nodeprogress.snapupview; import android.annotation.SuppressLint; import android.content.Context; import android.content.res.TypedArray; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import java.util.Timer; import java.util.TimerTask; @ SuppressLint ("HandlerLeak") public class SnapUpCountDownTimerView extends LinearLayout {private TextView tv_hour_decade Private TextView tv_hour_unit; private TextView tv_min_decade; private TextView tv_min_unit; private TextView tv_sec_decade; private TextView tv_sec_unit; private Context context; private int hour_decade; private int hour_unit; private int min_decade; private int min_unit; private int sec_decade; private int sec_unit; private Timer timer; private Handler handler = new Handler () {public void handleMessage (Message msg) {countDown ();}} Public SnapUpCountDownTimerView (Context context, AttributeSet attrs) {super (context, attrs); this.context = context; LayoutInflater inflater = (LayoutInflater) context .getSystemService (Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate (R.layout.view_countdowntimer, this); tv_hour_decade = (TextView) view.findViewById (R.id.tv_hour_decade); tv_hour_unit = (TextView) view.findViewById (R.id.tv_hour_unit) Tv_min_decade = (TextView) view.findViewById (R.id.tv_min_decade); tv_min_unit = (TextView) view.findViewById (R.id.tv_min_unit); tv_sec_decade = (TextView) view.findViewById (R.id.tv_sec_decade); tv_sec_unit = (TextView) view.findViewById (R.id.tv_sec_unit); TypedArray array = context.obtainStyledAttributes (attrs, R.styleable.SnapUpCountDownTimerView) Int size = array.getInteger (R.styleable.SnapUpCountDownTimerView_viewSize, 12); tv_hour_decade.setTextSize (size); tv_hour_unit.setTextSize (size); tv_min_decade.setTextSize (size); tv_min_unit.setTextSize (size); tv_sec_decade.setTextSize (size); tv_sec_unit.setTextSize (size); ((TextView) view.findViewById (R.id.colon_minute)) .setTextSize (size) ((TextView) view.findViewById (R.id.colon_hour)) .setTextSize (size);} public void start () {if (timer = = null) {timer = new Timer (); timer.schedule (new TimerTask () {@ Override public void run () {handler.sendEmptyMessage (0);}}, 0, 1000) }} public void stop () {if (timer! = null) {timer.cancel (); timer = null;}} public void setTime (int hour, int min, int sec) {if (hour > = 60 | | min > = 60 | | sec > = 60 | | hour < 0 | | min < 0 | sec < 0) {throw new RuntimeException ("incorrect time format, please check your code");} hour_decade = hour / 10 Hour_unit = hour-hour_decade * 10; min_decade = min / 10; min_unit = min-min_decade * 10; sec_decade = sec / 10; sec_unit = sec-sec_decade * 10; tv_hour_decade.setText (hour_decade + ""); tv_hour_unit.setText (hour_unit + "); tv_min_decade.setText (min_decade +"); tv_min_unit.setText (min_unit +") Tv_sec_decade.setText (sec_decade + ""); tv_sec_unit.setText (sec_unit + "") } private void countDown () {if (isCarry4Unit (tv_sec_unit)) {if (isCarry4Decade (tv_sec_decade)) {if (isCarry4Unit (tv_min_unit)) {if (isCarry4Decade (tv_min_decade)) {if (isCarry4Unit (tv_hour_unit)) {if (isCarry4Decade (tv_hour_decade)) {Toast.makeText (context, "count complete" Toast.LENGTH_SHORT) .show () Stop (); setTime (0,0,0); / / reset to 0} private boolean isCarry4Decade (TextView tv) {int time = Integer.valueOf (tv.getText (). ToString ()); time = time-1; if (time < 0) {time = 5; tv.setText (time + "); return true } else {tv.setText (time + "); return false;}} private boolean isCarry4Unit (TextView tv) {int time = Integer.valueOf (tv.getText (). ToString ()); time = time-1; if (time < 0) {time = 9; tv.setText (time +"); return true;} else {tv.setText (time + "); return false;}

Activity_main.xml

Home_snap_up.xml

View_countdowntimer.xml

This is the end of the article on "how to use timer and countdown in Android to achieve Taobao second kill function". Thank you for reading! I believe that everyone has a certain understanding of the knowledge of "how to use timer and countdown to achieve Taobao second kill function in Android". If you still want to learn more knowledge, welcome to follow the industry information channel.

Tags: Taobao countdown function timer knowledge content article code value simple operation effect effect article time easy to understand more format catalog look structure Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Linux Shulou Tech Info Microsoft NVidia Xiaomi