Java 当我使用此线程时,我的应用程序崩溃
我的目的很简单,我想创建一个从10到1的倒计时。我曾尝试使用谷歌提供的倒计时,但我无法将其作为一个线程,所以我用这种方法创建相同的函数,但我有一个问题,这个代码。我的应用程序在使用这个线程代码时崩溃。请帮助我Java 当我使用此线程时,我的应用程序崩溃,java,android,multithreading,button,android-studio,Java,Android,Multithreading,Button,Android Studio,我的目的很简单,我想创建一个从10到1的倒计时。我曾尝试使用谷歌提供的倒计时,但我无法将其作为一个线程,所以我用这种方法创建相同的函数,但我有一个问题,这个代码。我的应用程序在使用这个线程代码时崩溃。请帮助我 public class MainActivity extends Activity { TextView textView; Handler handler = new Handler(){ @Override public void handleMessage(Me
public class MainActivity extends Activity {
TextView textView;
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
String string = textView.getText().toString();
int num = Integer.parseInt(string);
num = num-1;
string = Integer.toString(num);
textView.setText(string);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Thread myThread = new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
for(int i = 10; i>0;i--){
try {
Thread.sleep(1000);
//handler.sendMessage(handler.obtainMessage());
handler.sendMessage(handler.obtainMessage());
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});
myThread.start();
}
}
你的问题不在于线,而在于这些线
String string = textView.getText().toString();
int num = Integer.parseInt(string);
您可能有一个以XML中的一些文本(“大文本”)开始的textView。移除它。“大文本”不是一个数字,所以当您对原始字符串调用parseInt()时,它试图将“大文本”转换为一个数字
请尝试以下代码:
try {
String string = textView.getText().toString();
int num = Integer.parseInt(string);
textView.setText(String.valueOf(--num));
catch(NumberFormatException ignored){
}
使用try/catch块这是我的日志猫的链接,您应该将实际的日志猫消息粘贴到帖子中。不要在itok brother照片的评论中添加链接,在我获得10个声誉之后,你不需要任何特殊的代表金额就可以使用标签下方的编辑按钮,并像使用代码一样在你的帖子中复制/粘贴logcat输出。非常感谢你,兄弟,我爱你。你解决了我的问题!。任何时候都可以。很高兴你让它工作了。这是我不久前发现的一个很酷的小提示。。如果要查看预览中的文本,请立即将此命名空间添加到布局XML文件xmlns:tools=“”,而不是使用android:text=“Large text”使用tools:text=“Large text”设置实际文本值。当你构建你的应用程序时,它实际上没有价值,但它会显示在预览中。是的,这是一个很好的信息!我很感激,我试过了,效果很好。