In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-02-24 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >
Share
Shulou(Shulou.com)06/01 Report--
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.
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.