Список очищается в эмуляторе, но не на реальном устройстве - PullRequest
1 голос
/ 05 марта 2010

Проблема, с которой я сталкиваюсь, заключается в различном поведении при работе с эмулятором устройства 1.6 и реального устройства Android 1.6 (в данном случае T-mobile g1). Когда список обновляется в эмуляторе, он заменяет список был там заранее. На телефоне он просто добавляет новый список в конец старого списка.

Мне нужно, чтобы устройство работало как эмулятор.

Любая помощь будет принята с благодарностью.

import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;

import oauth.signpost.OAuthConsumer;
import oauth.signpost.exception.OAuthExpectationFailedException;
import oauth.signpost.exception.OAuthMessageSignerException;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class timelineView extends ListActivity{

private ProgressDialog m_ProgressDialog = null; 
private ArrayList<Order> m_orders = null;
private OrderAdapter m_adapter;
private Runnable viewOrders;

private String consumerKey;
private String consumerSecret;
private String accessKey;
private String accessSecret;
private Thread thread;
private imageLoader avatar;

private Bitmap picture;

private Timer timer = new Timer();

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.timeline);

    m_orders = new ArrayList<Order>();

    this.m_adapter = new OrderAdapter(this, R.layout.timeline_entry, m_orders);

    setListAdapter(this.m_adapter);

    refresher();
}
private Runnable returnRes = new Runnable() {

    public void run() {
        m_adapter.clear();
        if(m_orders != null && m_orders.size() > 0){
            m_adapter.notifyDataSetChanged();
            for(int i=0;i<m_orders.size();i++)
            m_adapter.add(m_orders.get(i));
        }
        m_adapter.notifyDataSetChanged();
    }
};
private void getOrders(ArrayList<Order> m_orders){

            String[][] resultOfTweet = new String[20][4];

            twitterHandeler sender = new twitterHandeler();

            consumerKey = "";
            consumerSecret = "";
            accessKey = "";
            accessSecret = "";

            OAuthConsumer consumer = sender.setConsumer(consumerKey, consumerSecret, accessKey, accessSecret);

            try {
                resultOfTweet = sender.getMentionTimeLine(consumer);
            } catch (OAuthMessageSignerException e) {
                // TODO Auto-generated catch block
                finish();
            } catch (OAuthExpectationFailedException e) {
                // TODO Auto-generated catch block
                finish();
            }


            int i = 0;

            do{
                Order o1 = new Order();
                o1.setOrderName(resultOfTweet[i][0]);
                o1.setOrderStatus(resultOfTweet[i][0] + "\n" + resultOfTweet[i][1]);

                avatar = new imageLoader();

                picture = avatar.imageLoaderer(resultOfTweet[i][3]);
                o1.setOrderPicture(picture);
                m_orders.add(o1);
                i++;
            }while(i < 20);

        runOnUiThread(returnRes);
    }
private class OrderAdapter extends ArrayAdapter<Order> {

    private ArrayList<Order> items = null;

    public OrderAdapter(Context context, int textViewResourceId, ArrayList<Order> items) {
            super(context, textViewResourceId, items);
            this.items = items;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
            View v = convertView;
            if (v == null){
                LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.timeline_entry, null);
            }
            Order o = items.get(position);
            if (o != null){
                    TextView tt = (TextView) v.findViewById(R.id.topLine);
                    TextView bt = (TextView) v.findViewById(R.id.secondLine);
                    ImageView tv = (ImageView) v.findViewById(R.id.icons);
                    if (tt != null) {
                          tt.setText(o.getOrderName());                            }
                    if(bt != null){
                          bt.setText(o.getOrderStatus());
                    }
                    if(tv != null){
                        tv.setImageBitmap(o.getOrderPicture());
                  }
            }
            return v;
    }
}

private void refresher(){

    timer.scheduleAtFixedRate( new TimerTask() {
            public void run() {
                m_orders = new ArrayList<Order>();
                getOrders(m_orders);
            thread =  new Thread(null, viewOrders, "MagentoBackground");
            thread.start();
            } 
    }, 0, 30000);

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...