بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکلی عجیب در برنامه
من قسمت جستجو برای برنامه ام ساختم . وقتی کاربر کلمه ای را برای بار اول در edittext وارد میکنه و دکمه ی جستجو رو کلیک میکنه مشکلی نداره و دیتای مورد نظر رو از سمت سرور دریافت و در لیست وییو نمایش میده ولی وقتی کاربر برای بار دوم کلمه ای رو جستجو میکنه روی لیست ویو چیزی نمایش داده نمیشه وقتی دکمه ی back کیبورد مجازی رو کلیک میکنم دیتای مورد نظر نمایش داده میشه !؟ مشکل من از کجا میتونه باشه ؟
+1
0
بهتر بود کدتون رو کامل اینجا می نوشتین. لیستتون رو notifyDataSetChange می کنید؟ آرایه تون رو clear می کنید؟ کد رو قرار بدید تا راهنمایی بشید (11 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
شهریار توکلی
11 سال پیش
0
0
اینم کد Activity Search :
public static void populateSearchFromServer(String searchItem) {
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 {
search.clear();
JSONArray app= new JSONArray(data);
for (int i = 0; i < app.length(); i++) {
JSONObject object = app.getJSONObject(i);
StructApp Apps= new StructApp();
Apps.id = object.getLong("app_id");
Apps.name = object.getString("app_name");
Apps.ratingValue = (float) object.getDouble("app_rating");
Apps.logoUrl = object.getString("app_logourl");
Apps.year = object.getInt("app_year");
Apps.votes = object.getString("app_vote");
search.add(Apps);
}
adapter2.notifyDataSetChanged();
}
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("searchItem", searchItem));
module.url("http://192.168.1.51/app-server/search.php?action=readsearch", input)
.inputArguments(input)
.listener(listener)
.cacheDir(G.DIR_CACHE)
.enableCache(true)
.cacheExpireTime(3)
.connectionTimeout(3000)
.socketTimeout(5000)
.read();
}
public class LoadingTask extends AsyncTask<String, Void, String>
{
@Override
protected String doInBackground(String... params) {
SerachItem = edtSearchItem.getText().toString();
populateSearchFromServer(SerachItem);
return null;
}
@Override
protected void onPreExecute() {
mProgressDialog = new ProgressDialog(ActivitySearch.this);
mProgressDialog.setMessage("لطفا صبر کنید...");
mProgressDialog.setIndeterminate(false);
mProgressDialog.show();
mProgressDialog.setCancelable(false);
super.onPreExecute();
}
@Override
protected void onPostExecute(String result) {
mProgressDialog.dismiss();
runOnUiThread(new Runnable() {
@Override
public void run() {
/**
* Updating parsed JSON data into ListView
* */
adapter2 = new AdapterSerials(search);
listSearch.setAdapter(adapter2);
}
});
}
protected void onResume() {
adapter2.notifyDataSetChanged();
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .