我有一个String类型数组。我希望在一小段时间片后显示TextView中的每个元素,这意味着在一定时间后,数组的元素一次又一次地在TextView中显示。所以我使用的是计时器,但它只显示了数组的最后一个元素。请尽快解决我的问题。
protected void onPostExecute(Void result) {
try {
super.onPostExecute(result);
listAdapter = new ExpandableListAdapter(getActivity(), listDataHeader, headerChild, expListView);
expListView.setAdapter(listAdapter);
int j=0, k=1;
if (prog.isShowing()) {
prog.dismiss();
expListView.setBackgroundColor(0xFFFFFFFF);
String af="";
String cf="";
for(int i=0; i<breakstore2.length; i++){
cf=breakstore2[j];
af= breakstore2[k];
new Handler().postDelayed(new Runnable() {
public void run() {
marquee.setText("Breaking News :" + af);
marquee.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent mainIntent = new Intent(getActivity(),h_nextpage2.class);
mainIntent.putExtra("listitem", cf);
startActivity(mainIntent);
}
});
}
}, DISPALY_LENGTH);
j=j+2;
k=k+2;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
该方法正在以比您想要的更快的速度更新UI ...您可以创建IntentService
并将该服务发送到需要放在屏幕上的数据。
在您需要更新用户界面的主活动中创建Messenger
,同时在其中创建Handler
。从您的AsyncTask
发布对intentService的更新,您可以通过暂停intentServices'thread
来延迟更新,然后向包含您需要的数据的主活动的Messenger发送消息show(在你的情况下是突发新闻)反过来会为你做更新。