mazimazi
جمعه 04 اردیبهشت 1394, 19:30 عصر
با سلام. من برنامه ای شروع کردم که تعدادی دیتا رو به صورت کد جیسون از سمت سرور میگیره و در listview نمایش میده. ولی بعد از اجرای برنامه لیست ویو خالی نمایش داده میشه و دومین بار که اجرا میکم لیست ویو رو با دیتا نمایش میده مشکلم از کجاست ؟
Main Code :
public class StartupActivity extends Activity {
private ArrayAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ListView lstContent = (ListView) findViewById(R.id.lstContent);
adapter = new AdapterNote(G.tasks);
lstContent.setAdapter(adapter);
TestModuleWebservice.test2();
adapter.notifyDataSetChanged();
}
@Override
protected void onResume() {
super.onResume();
adapter.notifyDataSetChanged();
}
public class TestModuleWebservice {
public static void test2() {
ModuleWebservice module = new ModuleWebservice();
ModuleWebservice.Listener listener = new ModuleWebservice.Listener() {
@Override
public void onDataReceive(String data) {
Log.i("LOG", "Webservice Data: " + data);
if (data != null) {
try {
G.tasks.clear();
JSONArray tasks = new JSONArray(data);
for (int i = 0; i < tasks.length(); i++) {
JSONObject object = tasks.getJSONObject(i);
StructTask task = new StructTask();
task.id = object.getLong("task_id");
task.title = object.getString("task_title");
task.desc = object.getString("task_desc");
task.done = object.getInt("task_done") == 1 ? true : false;
G.tasks.add(task);
}
}
catch (JSONException e) {
e.printStackTrace();
}
}
}
@Override
public void onFail(int statusCode) {
switch (statusCode) {
case ModuleWebservice.IO_EXCEPTION:
Log.i("LOG", "IO Exception");
break;
case ModuleWebservice.PROTOCOL_EXCEPTION:
Log.i("LOG", "PROTOCOL Exception");
break;
case ModuleWebservice.UNKNOWN_EXCEPTION:
Log.i("LOG", "UNKNOWN Exception");
break;
}
}
};
ArrayList<NameValuePair> input = new ArrayList<NameValuePair>();
input.add(new BasicNameValuePair("name", "Behnam"));
module.url("http://192.168.1.51/note-server2/")
.inputArguments(input)
.listener(listener)
.cacheDir(G.DIR_CACHE)
.enableCache(true)
.cacheExpireTime(3)
.connectionTimeout(3000)
.socketTimeout(5000)
.read();
}
}
Main Code :
public class StartupActivity extends Activity {
private ArrayAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ListView lstContent = (ListView) findViewById(R.id.lstContent);
adapter = new AdapterNote(G.tasks);
lstContent.setAdapter(adapter);
TestModuleWebservice.test2();
adapter.notifyDataSetChanged();
}
@Override
protected void onResume() {
super.onResume();
adapter.notifyDataSetChanged();
}
public class TestModuleWebservice {
public static void test2() {
ModuleWebservice module = new ModuleWebservice();
ModuleWebservice.Listener listener = new ModuleWebservice.Listener() {
@Override
public void onDataReceive(String data) {
Log.i("LOG", "Webservice Data: " + data);
if (data != null) {
try {
G.tasks.clear();
JSONArray tasks = new JSONArray(data);
for (int i = 0; i < tasks.length(); i++) {
JSONObject object = tasks.getJSONObject(i);
StructTask task = new StructTask();
task.id = object.getLong("task_id");
task.title = object.getString("task_title");
task.desc = object.getString("task_desc");
task.done = object.getInt("task_done") == 1 ? true : false;
G.tasks.add(task);
}
}
catch (JSONException e) {
e.printStackTrace();
}
}
}
@Override
public void onFail(int statusCode) {
switch (statusCode) {
case ModuleWebservice.IO_EXCEPTION:
Log.i("LOG", "IO Exception");
break;
case ModuleWebservice.PROTOCOL_EXCEPTION:
Log.i("LOG", "PROTOCOL Exception");
break;
case ModuleWebservice.UNKNOWN_EXCEPTION:
Log.i("LOG", "UNKNOWN Exception");
break;
}
}
};
ArrayList<NameValuePair> input = new ArrayList<NameValuePair>();
input.add(new BasicNameValuePair("name", "Behnam"));
module.url("http://192.168.1.51/note-server2/")
.inputArguments(input)
.listener(listener)
.cacheDir(G.DIR_CACHE)
.enableCache(true)
.cacheExpireTime(3)
.connectionTimeout(3000)
.socketTimeout(5000)
.read();
}
}