A. android studio怎么做倒计时钟
在代码左侧的灰色条上点一下,整行代码变红茄如了就是设置上断点了 点绿三角右备纳租边带刺的e才是调试模式,绿三角只是运行不仿兆能调试
B. android listview 多个item 倒计时怎么做好
1. Adapter.getView()
public View getView(int position, View convertView, ViewGroup
parent){...}
这个方法就是用来获得指定位置要显示的View。官网解释如下:
Get a View that displays the data at the specified position in the data
set. You can either create a View manually or inflate it from an XML layout
file.
当要显示一个View就调用一次这个方法。这个方法是ListView性能好坏的关键。方法中有个convertView,这个是Android在为我们而做的缓存机制。
ListView中每个item都是通过getView返回并显示的,假如item有很多个,那么重复创建这么多对象来显示显然是不合理。因此,Android提供了Recycler,将没有正在显示的item放进RecycleBin,然后在显示新视图时从RecycleBin中复用这个View。
Recycler的工作原理大致如下:
假设屏幕最多能看到11个item,那么当第1个item滚出屏幕腊兄,这个item的View进入RecycleBin中,第12个要出现前,通过getView从回收站(RecycleBin)中重用这个View,然后设置数据,而不必重新创建一个View。
我们用Android提供腊蔽的APIDemos来验证这个过程:
先看关键代码:
public View getView(int position, View convertView, ViewGroup parent)
{
// A ViewHolder keeps references to children views to avoid unneccessary
calls
// to findViewById() on each row.
ViewHolder holder;
// When convertView is not null, we can reuse it directly, there is no
need
// to reinflate it. We only inflate a new View when the convertView
supplied
// by ListView is null.
if (convertView == null)
{
convertView = mInflater.inflate(R.layout.list_item_icon_text, null);
Log.v("tag", "positon "+position+" convertView is null, "+"new:
"+convertView);
// Creates a ViewHolder and store references to the two children views
// we want to bind data to.
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.text);
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
convertView.setTag(holder);
}
else
{
//轮局袭 Get the ViewHolder back to get fast access to the TextView
// and the ImageView.
holder = (ViewHolder) convertView.getTag();
Log.v("tag", "positon "+position+" convertView is not null,
"+convertView);
}
// Bind the data efficiently with the holder.
holder.text.setText(DATA[position]);
holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);
return convertView;
}
static class ViewHolder
{
TextView text;
ImageView icon;
}
C. android 用 service 和 CountDownTimer 实现一个倒计时器的功能
在平时我们编程的时候,经常会用到倒计时这个功能,很多人不知道Android已经帮封装好了一个类,往往做物都自己写。现在发现了这个类,大家共享一下:
在一个漏胡行TextView不断显示剩下的时间,代码如下:
[java] view plain
private TextView vertifyView;
private CountDownTimer timer = new CountDownTimer(10000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
vertifyView.setText((millisUntilFinished / 1000) + "秒后可重发");
}
@Override
public void onFinish() {
vertifyView.setEnabled(true);
vertifyView.setText("获取验证码");
}
};
调用的时候很简单:timer.start();
最后返哗说明一下:CountDownTimer timer = new CountDownTimer(10000, 1000)中,第一个参数表示总时间,第二个参数表示间隔时间。意思就是每隔一秒会回调一次方法onTick,然后10秒之后会回调onFinish方法。
D. android 怎么在button上添加倒计时
最简单的两种纤迟运旦册方法吧
开启一个定毁梁时器 (timer 、 countDownTimer) 然后每隔1s 通过handler 让button 里面的文字改变一下 就是倒计时了
基本跟第一个相同。自定义一个类 继承button 然后 里面写定时器 settext()
E. android中使用chronometer怎样创建倒计时器问题
在Android中,可以使用计时器来实现对时间的监搏埋测,这个类所实现的功能有开始计时,停止计时,重新计时,设置计时模式,下面列出计时器方法的原基帆蚂型:
long getBase();//返回基地的时间,由setBase(long)设置的
String getFormat();//返回当前字符串格式,此格式是通过setFormat()实现的
void setBase(long base);//设置时间,计数定时器指定的值
void setFormat(String format);//设置显示的内容,计时器将会显示这个参数所对应的值得,如果字符串的值
//轿悄为null,那么返回的值为MM:SS格式的
下面就来介绍一个实例:
package com.example.android.apis.view;
// Need the following import to get access to the app resources, since this
// class is in a sub-package.
import com.example.android.apis.R;
import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;
public class ChronometerDemo extends Activity {
Chronometer mChronometer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.chronometer);
Button button;
mChronometer = (Chronometer) findViewById(R.id.chronometer);
// Watch for button clicks.
button = (Button) findViewById(R.id.start);
button.setOnClickListener(mStartListener);//对应的是开始计时
button = (Button) findViewById(R.id.stop);
button.setOnClickListener(mStopListener); //对应的是停止计时
button = (Button) findViewById(R.id.reset);
button.setOnClickListener(mResetListener);//对应的是重新置数
button = (Button) findViewById(R.id.set_format);
button.setOnClickListener(mSetFormatListener);//对应的是设置时间的显示格式
button = (Button) findViewById(R.id.clear_format);
button.setOnClickListener(mClearFormatListener);//对应的是使用非格式的计时显示功能
}
View.OnClickListener mStartListener = new OnClickListener() {
public void onClick(View v) {
mChronometer.start();
}
};
View.OnClickListener mStopListener = new OnClickListener() {
public void onClick(View v) {
mChronometer.stop();
}
};
View.OnClickListener mResetListener = new OnClickListener() {
public void onClick(View v) {
mChronometer.setBase(SystemClock.elapsedRealtime());
}
};
View.OnClickListener mSetFormatListener = new OnClickListener() {
public void onClick(View v) {
mChronometer.setFormat("Formatted time (%s)");
}
};
View.OnClickListener mClearFormatListener = new OnClickListener() {
public void onClick(View v) {
mChronometer.setFormat(null);
}
};
}
F. android开发怎么能让倒计时用毫秒来计算,并且一页可以出现多个倒计时的textview不卡
可以使或塌用handler,也可以通过services发卖竖送广播,更新UI,这些好事操作都是在线程中进行的,你至少要sleep的数值设置成你所需要的就中团大行,因为它的单位本身就是毫秒级。
G. 怎么在android悬浮窗口上实现倒计时
public class XuanfuTestActivity extends Activity {
/** Called when the activity is first created. */
int num=10;
String text;
Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button=new Button(getApplicationContext());//这里不能写this 否则没有效果
WindowManager wmManager=(WindowManager)getApplicationContext(). getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams params=new WindowManager.LayoutParams();
params.type=WindowManager.LayoutParams.TYPE_PHONE ;
params.type=2002;
params.flags=40;
params.width=50;
params.height=50;
wmManager.addView(button, params);
handler.sendEmptyMessageDelayed(1, 1000);
}
Handler handler=new Handler(){
public void handleMessage(android.os.Message msg) {
if (msg.what==1) {
text=""+num--;
button.setText(text);
}
if (num<=0) {
num=0;
}else {
handler.sendEmptyMessageDelayed(1, 1000);
}
};
};
}
H. android listview 多个item 倒计时怎么做好
Handler+Timer+TimerTask实现:
Activity中代码:
public class ShopActivity extends Activity {
private ListView lv;
private ShopAdapter pmAdapter;
private Timer timer = new Timer();
private TimerTask timerTask;
private List<MyData> dataList;
@SuppressLint("HandlerLeak")
private Handler mHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (msg.what == 1) {
for (int i = 0; i < mMyMatchList.size(); i++) {
dataList.get(i).setServerDate(Long.valueOf(dataList.get(i).getServerDate())+ 1 + "");//这是服务器当前时间,以此时间为基数进行倒时计,因为服务器时间以秒为单位返回,所以我们每隔1秒前前,把当前服务器时间+1,也可以把结束时间-1
serverTime = Long.valueOf(mMyMatchList.get(i).getServerDate());
pmAdapter.notifyDataSetChanged();
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_shop);
dataList=new ArrayList<MyData>();//贺敬接下来要从服务端取到数据,加入dataList中
lv= (ListView) this.findViewById(R.id.shop_lv);
pmAdapter = new ShopAdapter(ShopActivity.this, this);
lv.setAdapter(pmAdapter);
timerTask = new TimerTask() {
@Override
public void run() {
Message message = Message.obtain();
message.what = 1;
mHandler.sendMessage(message);
}
};
timer.schele(timerTask, 1000, 1000);
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onDestroy() {
if (null != timer) {
timer.cancel();
}
super.onDestroy();
}
}
最后在适配器类禅悔慎ShopAdapter中,根据服务器返回的截止时间和服务器时间,把数据加上去就可以了:
TextView timeTv=findViewById();
timeTv.setText(getTimeFromInt(结束时间-服务器时间));
getTimeFromInt这个方法是计算时间差并转换成所需要格式的:
public String getTimeFromInt(long time) {
if (time <= 0) { return "已结束"; }
long day = time / (1 * 60 * 60 * 24);
long hour = time / (1 * 60 * 60) % 24;
long minute = time / (1 * 60) % 60;
long second = time / (1) % 60;
return "还剩:" + day + "天" + hour + "小时" + minute + "分" + second + "秒";
}
I. 安卓按键精灵怎么设置倒计时30分钟执行代码,否则执行别的代码在线等,谢谢大神
直接延时30分钟就行。
Delay 30*60*1000
脚本最前面加上这句话,30分钟后会运行。
J. android 有没有倒计时天时分秒的工具类
举例说明: A1输入目标时间 2011-3-31 12:30:00 A2输入现在时间 =NOW() A3输入 =A1-A2 A4输入 =INT(A3)&"天"&TEXT(A3-INT(A3),"h时m分s秒") A4为倒计时