Ich habe ListView
, die Daten haben. Daten kommen vom Server und ich möchte die ListView
nach alle 5 Sekunden aktualisieren. Wie macht man das? Ich bin neu in der Android-Entwicklung. Bitte hilf mir. Hier ist mein Code ..android, wie ListView alle 5 Sekunden aktualisieren
protected void showList() {
try {
JSONObject jsonObj = new JSONObject(myJSON);
peoples = jsonObj.getJSONArray(TAG_RESULTS);
for (int i = 0; i < peoples.length(); i++) {
JSONObject c = peoples.getJSONObject(i);
String data = c.getString(TAG_DATA);
final String dataaaa = rcdata.getText().toString().trim();
HashMap<String, String> user_data = new HashMap<String, String>();
user_data.put(TAG_DATA, data);
personList.add(user_data);
}
ListAdapter adapter = new SimpleAdapter(
DataSendActivity.this, personList, R.layout.layout_chat,
new String[]{TAG_DATA},
new int[]{R.id.data}
);
list.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
auch versucht, diese
onCreate
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
handler.postDelayed(this, 5000);
}
}, 5000);
i Daten erhalten mit dieser Methode
public void getData() {
class GetDataJSON extends AsyncTask<String, Void, String> {
//String recID = ;
//String userID = email;
@Override
protected String doInBackground(String... params) {
DefaultHttpClient httpclient = new DefaultHttpClient(new BasicHttpParams());
HashMap<String, String> user = db.getUserDetails();
//String name = user.get("name");
// Semail = user.get("email");
String semail = user.get("email");
final String remail = rremail;
HttpPost httppost = new HttpPost("http://samplechatapp.gear.host/myphpfile.php?sender_email="+semail+"&reciver_email="+remail+"&fatch_server_data=true");
// Depends on your web service
httppost.setHeader("Content-type", "application/json");
InputStream inputStream = null;
String result = null;
Log.i("","processing entity");
try {
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
inputStream = entity.getContent();
// json is UTF-8 by default
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
Log.i("",line);
}
result = sb.toString();
Log.i("",result);
} catch (Exception e) {
// Oops
} finally {
try {
if (inputStream != null) inputStream.close();
} catch (Exception squish) {
}
}
return result;
}
@Override
protected void onPostExecute(String result) {
myJSON = result;
showList();
}
}
GetDataJSON g = new GetDataJSON();
g.execute();
}
aber wenn ich öffnen Sie die Listenansicht app Absturz bitte hilf mir ich bin sehr neu in android
Sie können java.util.Timer & java.util.TimerTask verwenden, um Timer-Aufgaben zu erstellen. Außerdem sollten Sie Asynctask verwenden oder einen neuen Thread erstellen, um Daten vom Server zu holen, da es lange dauern kann, um Daten zu erhalten, die den Hauptthread blockieren und schließlich abstürzen können. –
Inside run müssen Sie zuerst JSON wieder parsen und Array (personList) auffüllen und dann adapter.notifydatasetchanged –
@MarkoNiciforovic werden Sie bitte meinen Code bearbeiten Ich bin neu Android – Malik