Android 在活动启动后更改空textview的值
我是Android新手。我有一个简单的应用程序,它有两个活动,运行如下: 活动1: 活动2: “额外信息”将在单个Android 在活动启动后更改空textview的值,android,Android,我是Android新手。我有一个简单的应用程序,它有两个活动,运行如下: 活动1: 活动2: “额外信息”将在单个TextView上显示,并增加1次,重复10次每次添加的结果将在TextView上显示,延迟1000毫秒 Intent intent= getIntent(); String message=intent.getStringExtra(MainActivity.EXTRA_MESSAGE); int no= Integer.parseInt(message); TextView te
TextView
上显示,并增加1次,重复10次每次添加的结果将在TextView
上显示,延迟1000毫秒
Intent intent= getIntent();
String message=intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
int no= Integer.parseInt(message);
TextView textView=new TextView(this);
textView.setTextSize(40);
for(int i=0;i<10;i++)
{
message=Integer.toString(no);
textView.setText(message);
setContentView(textView);
no++;
try {
Thread.sleep(1000);
} catch(InterruptedException e) {
}
}
Intent-Intent=getIntent();
字符串消息=intent.getStringExtra(MainActivity.EXTRA_消息);
int no=Integer.parseInt(消息);
TextView TextView=新的TextView(此);
textView.setTextSize(40);
对于(int i=0;i只需在第二个活动的onCreate()方法中运行它。在主(或UI)线程上调用Thread.sleep()是一个坏主意。事实上,任何停止主线程的操作都是一个坏主意。一个解决方案是:在第二个活动中创建一个处理程序,并对其进行延迟后运行。使用Handler.postDelayed(Runnable r,long delayMillis)
在与处理程序关联的线程(在本例中为主线程)上调度runnable
您可以通过调用handler.removeCallbacks(updateTextRunnable);
来停止它--我让您决定停止运行它的位置。您可以创建一个thread类的对象,并在其中放入皮带扣的代码
然后每次“for”迭代调用
thread.sleep(500);
这样,系统将在每次迭代中等待
0.5秒
,当我运行onCreate方法时,代码将运行,但问题是您无法看到添加步骤,只有在执行onCreate后才会显示结果。我需要查看文本视图更改,例如:用户输入为10。然后第二个活动应定期显示10 11 12 1314 15 16 17 18 19 20以1000毫秒的延迟在textview上。感谢您的回答,因为您在每次迭代中都会用无ans覆盖消息,然后将其设置为textview。请改用StringBuffer和append方法。类似于:StringBuffer sb=new StringBuffer();textview.setText(sb.append(no.toString());
private Handler handler;
private TextView textView;
private Runnable updateTextRunnable = new Runnable() {
public void run() {
String message = ...
textView.setText(message);
handler.postDelayed(this, 1000);
}
};
public void onCreate(Bundle saved) {
super.onCreate(saved);
setContentView(R.layout.your_layout);
textView = (TextView) findViewById(R.id.your_text_view_id);
handler = new Handler();
}
public void onResume() {
super.onResume();
handler.postDelayed(updateTextRunnable, 1000);
}
thread.sleep(500);