[英]Android toggle button click set textview
我是 android 开发的新手,我想在点击切换按钮时设置一个文本视图。 单击切换按钮时,会调用长度操作方法,因此在此之前我想设置一个 textview 说“服务正在启动”,但我注意到一旦切换按钮状态从 START 变为 STOP 和之后,就会设置 textview方法调用完成。
你能帮我在方法调用之前显示文本视图吗?
我已经处理了下面的代码。
@Override
protected void onResume() {
super.onResume();
Reader.getInstance(this,this);
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
textView.setVisibility(View.VISIBLE);
Thread t = new Thread(){
public void run(){
startMyService();
}
};
t.start();
try {
t.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
textView.setVisibility(View.GONE);
}
else {
Thread t = new Thread(){
public void run(){
stopMyService();
}
};
t.start();
}
}
});
}
谢谢。
我使用了以下代码,但单击切换按钮时没有显示任何内容。 我曾尝试将冗长的代码放在一个线程中,但即使在使用 thread.join 之后该方法也没有执行。
尝试这个:
class startservice_AsyncTask extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
textView.setVisibility(View.VISIBLE);
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
textView.setVisibility(View.GONE);
}
@Override
protected Void doInBackground(Void... params) {
startMyService();
return null;
}
}
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
startservice_AsyncTask startserviceTask = new startservice_AsyncTask();
startserviceTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
else {
Thread t = new Thread(){
public void run(){
stopMyService();
}
};
t.start();
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.