Android-用线程做提示框的相关问题

WP主题Bug提交 WP主题Bug提交 主题:1067 回复:2226

Android-用线程做提示框的相关问题

虐人心 发布于 2017-05-18 字数 2994 浏览 1119 回复 2

我想:点击一个按钮,弹出一个TexeView。通过线程来控制这个TextView显示时间。可是每次运行到最后,当TexeView如愿被隐藏了,整个Activity却异常终止了,跪求高手讲解...代码如下!!!!(我承认,我是个文盲 =_= )

package hn.spi;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.RadioButton;
import android.widget.TextView;

public class DaZheActivity extends Activity implements Runnable{
/** Called when the activity is first created. */
private TextView xianjin,yinhangka,chongzhika,tishi3;
private Boolean tishibuff=false;
private Thread t;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
setContentView(R.layout.dazhe);
t=new Thread(this);//定义初始化线程
t.start();
InitsomeView();
}
/**
* 初始化监听
*/
private void InitsomeView(){
xianjin=(TextView)findViewById(R.id.dazhe_xianjin);
yinhangka=(TextView)findViewById(R.id.dazhe_yinhangka);
chongzhika=(TextView)findViewById(R.id.dazhe_chongzhika);
xianjin.setOnClickListener(new ButtonOnClickListener());
yinhangka.setOnClickListener(new ButtonOnClickListener());
chongzhika.setOnClickListener(new ButtonOnClickListener());
tishi3=(TextView)findViewById(R.id.dazhe_tishi3);
tishi3.setVisibility(View.GONE);//sz_layout.setVisibility(View.VISIBLE);
}

class ButtonOnClickListener implements OnClickListener{
@Override
public void onClick(View v) {

if(v==xianjin&&tishibuff==false){

tishi3.setVisibility(View.VISIBLE);
tishibuff=true;
}
if(v==yinhangka&&tishibuff==false){
tishi3.setVisibility(View.VISIBLE);
tishibuff=true;
}
if(v==chongzhika&&tishibuff==false){
tishi3.setVisibility(View.VISIBLE);
tishibuff=true;
}

}

}

@Override
public void run() {
int time=5;
while(true){
if(tishibuff==true){
time--;
if(time==0){
tishibuff=false;
tishi3.setVisibility(View.GONE);
time=5;
}
}
try{
Thread.sleep(1000); //休眠3毫秒
}catch(Exception e){}
}
}

}

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

夜无邪 2017-10-02 2 楼

tishi3.setVisibility(View.GONE);

对UI的操作都要在主线程下进行,在其他线程中可以用Handler或者runOnUiThread()来实现修改UI的目的。

另外用AysncTask或者更适合你现在的场景.

清晨说ぺ晚安 2017-08-16 1 楼

tishi3.setVisibility(View.GONE);
你怎么能在线程里对UI进行操作呢?你得看看一些ANDROID UI上的注意点!不然很蛋疼的!你得学会用HANDLE,用异步等操作