如何通过计时器显示数组元素

时间:2014-04-04 05:27:19

标签: android

我有一个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();
                    }               
             }       
        }

1 个答案:

答案 0 :(得分:0)

该方法正在以比您想要的更快的速度更新UI ...您可以创建IntentService并将该服务发送到需要放在屏幕上的数据。

在您需要更新用户界面的主活动中创建Messenger,同时在其中创建Handler。从您的AsyncTask发布对intentService的更新,您可以通过暂停intentServices'thread来延迟更新,然后向包含您需要的数据的主活动的Messenger发送消息show(在你的情况下是突发新闻)反过来会为你做更新。