aktualisieren einer listview im thread?

möchte ich einige Informationen von dem entfernten server, und anzeigen, dass Daten in der listview habe ich die Daten abgerufen vom server, aber ich weiß nicht, wie angezeigt, in der Listenansicht
hier ist mein code, in diesem code, den ich angezeigt haben eine listview mit statischen Daten und versucht, diese Liste zu aktualisieren, Ansicht, indem Sie die Daten abrufen vom server,

ich weiß nicht, wo die Liste zu aktualisieren anzuzeigen, bitte jemand mir helfen, dies zu tun

package com.listview;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ListActivity;
import android.net.ParseException;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class ListViewActivity extends ListActivity {
/** Called when the activity is first created. */
private ThreadTest mThreadTest;
ArrayList<String > arlist;
public void onCreate(Bundle savedInstanceState) {


      super.onCreate(savedInstanceState);
      mThreadTest=new ThreadTest();       
      Thread tt=new Thread(mThreadTest);
      tt.start();   
//create a static arraylist to display it in listview
      arlist = new ArrayList<String>();
      arlist.add("xxxxxxxxxxxx");
      arlist.add("yyyyyyyyyyyy");
      ArrayAdapter<String>  arrayAdapter = new ArrayAdapter<String>(this,R.layout.list_item, arlist);
      setListAdapter(arrayAdapter);       
//create listview

      ListView lv = getListView();
      lv.setTextFilterEnabled(true);
      lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
//When clicked, show a toast with the TextView text

          Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
              Toast.LENGTH_SHORT).show();
        }
      });
    }

static public class ThreadTest implements Runnable
{
    ListViewActivity li=new ListViewActivity();             
    JSONArray jArray;
    String result = null;
    InputStream is = null;
    StringBuilder sb=null;
    public  ArrayList al,arraylist;
    public void run() 
    {
//get some details from remote server as json string 

        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        try
        {

            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://xxxxxxxxx/clients/yyyyyy/city.php");
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
         }
        catch(Exception e)
        {
            Log.e("log_tag", "Error in http connection "+e.toString());
        }
        try{                
            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
            sb = new StringBuilder();
            sb.append(reader.readLine() + "\n");
            String line="0";
            while ((line = reader.readLine()) != null) 
            {
                    sb.append(line  );
            }
            is.close();
            result=sb.toString();

/**************************************
             * result is [{"city_id":"1","city_name":"madurai"},{"city_id":"2","city_name":"coimbatore"},{"city_id":"3","city_name":"chennai"}]
             */

//parse the json string values

            JSONArray array = new JSONArray(result);
            for (int i = 0; i < array.length(); i++) 
            {
                JSONObject row = array.getJSONObject(i);
                int id = row.getInt("city_id");                 
                String name = row.getString("city_name");
//add the cityname to arraylist to display it in listview after the thread exeucted
                arraylist.add(name);                                                    
            }            

        }
        catch(Exception e)
        {
              Log.e("log_tag", "Error converting result "+e.toString());
        }
    }
}

}

Ich habe ein gutes tutorial auf http://www.sitepoint.com/loading-twitter-data-into-android-with-lists/ um dies zu tun,

Sorry Ramamoorthy versuchen Sie bitte, zu sein mehr spezifisch, wenn Sie Fragen auf stackoverflow. Einfach code posten und in der Hoffnung für eine Lösung wird nicht funktionieren.
ich möchte eine listview in einem Thread, ist es möglich, dies zu tun?
Nur ein freundliches Wort der Beratung....bitte nicht posten, Hunderte von Zeilen code in eine Frage. Reduzieren Sie Ihre Beispiel-code, um gerade genug code, um zu demonstrieren, Ihr Problem. So bekommen Sie bessere Antworten. Bitte Lesen Sie von diesem Artikel: msmvps.com/blogs/jon_skeet/archive/2010/08/29/...

InformationsquelleAutor Ramamoorthy | 2011-08-12

Schreibe einen Kommentar