我得到一個應用程序,它可以計數到10並在textView中顯示每個數字。它只是另一個代碼的樣本。但問題是:當我啓動應用程序時,沒有什麼可用於查看時間,然後發出消息「應用程序沒有響應」。日誌說「應用程序可能在其主線程上做了很多工作」。當我搜索時,我發現主題「通過新線程/處理程序更新TextView」有很多問題和答案,並且我嘗試了很多示例 - 但沒有任何效果。我是編程新手,希望有人能告訴我什麼是錯的。也許它很容易,但我不知道如何得到它。謝謝你的幫助!這裏是例子的代碼:應用程序可能會在其主線程上做很多工作
package de.androidnewcomer.animation;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import static de.androidnewcomer.animation.R.id.textView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener,Runnable {
private TextView textView;
private int i;
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button);
button.setOnClickListener(this);
handler=new Handler();
}
@Override
public void run() {
count();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
count();
break;
}
}
public void count() {
while (i < 10) {
TextView textView = (TextView) findViewById(R.id.textView);
textView.setText("" + i);
handler.postDelayed(this,1000);
}
}
}
編輯:我更新計數() - 方法,增加INT我但現在的產量也只有「10」 ...感謝您的快速解答!這裏是現在的方法:
public void count() {
i=0;
while (i < 10) {
i++;
TextView textView = (TextView) findViewById(R.id.textView);
textView.setText("" + i);
handler.postDelayed(this,1000);
}
}
該應用程序必須顯示在TextView中每秒鐘從一到十的數字。 但是,當我啓動應用程序,它只顯示十。 感謝您的幫助
因爲我從來沒有增加,你有一個無限循環。 –
在你的while循環中加入'i ++;' – Denny