웹에서 30 초마다 데이터를 수신합니다. 문제는 listview의 데이터가 새로 고쳐지지 않는다는 것입니다. 나는 사용자가이 코드 :웹에서 데이터를 수신 할 때 목록보기 새로 고침
if (playlists.length != 0) {
MyListView = (ListView) findViewById(R.id.MyListView);
adapter1 = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, playlists);
MyListView.setAdapter(adapter1);
}
내가 목록보기의 웹 데이터에서 얻을하지만이 화면에 표시되지 않습니다
t = new Timer();
t.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
doReload1();
}
}, 300, 30000);
public void doReload1() {
runOnUiThread(new Runnable(){
public void run() {
System.out.println("Every 30 sec getPlaylist");
try {
HttpClient httpclient = new DefaultHttpClient();
String link = "http://test.res-novae.fr/sfr/imalive.php?device_key="
+ deviceId + "&device_type=9";
System.out.println("trimit " + link);
HttpPost httppost = new HttpPost(link);
try {
httpclient.execute(httppost);
GetPlaylists();
System.out.println("getplaylist");
} catch (ClientProtocolException e) {
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
및 채우기 목록보기에 대한
.try {
HttpResponse response = httpclient.execute(httppost);
/* Checking response */
if (response != null) {
String responseBody = EntityUtils.toString(response
.getEntity());
System.out
.println("Rezultat de la server :" + responseBody);
String jsonString = responseBody.toString();
JSONObject jsonObject = new JSONObject(jsonString);
jArray = jsonObject.getJSONArray("_playLists");
playlists = new String[jArray.length()];
idPlaylist = new String[jArray.length()];
timerPlaylist = new String[jArray.length()];
for (int i = 0; i < jArray.length(); i++) {
JSONObject jsdata = jArray.getJSONObject(i);
String id = jsdata.getString("id_playlist");
String namePlaylist = jsdata.getString("name");
String timer = jsdata.getString("timer");
System.out.println("Name playlist" + namePlaylist);
playlists[i] = namePlaylist;
idPlaylist[i] = id;
timerPlaylist[i] = timer;
}
for (int i = 0; i < jArray.length(); i++) {
System.out.println("playlists : " + playlists[i] +"\n");
}
}
좋아요 보지 않습니다 새로 고침 문제. 어댑터를 설정할 때 배열의 내용을 콘솔에 로그온 했습니까? – jptsetung
예, 웹에서 얻은 결과는 다음과 같습니다. { "_playLists": [{ "id_playlist": "33", "name": "SFR Demo", "timer": "2"}, "id_playlist": "50", "name": "trei", "timer": "1"}, { "id_playlist": "49", "name": "second'playlist" 1 "}}} 및 playLists에"SFR Demo ","Second'playlist ","trei "가 포함되어 있습니다. – Gabrielle
어댑터를 만들기 전에 재생 목록을 덮어 쓸 수 있습니까? 예를 들어, 어댑터를 작성하기 전에이 행을 추가하십시오. String [] playlists = new String [] { "Item0", "Item1", "Item3"}; – jptsetung