بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
اضافه کردن امکان جستجو به یک لیست ویو
سلام دوستان
من یک کد نوشتم که امکان جستجو رو به لیست ویو اضافه میکنه. مشکل اینجاست که کار نمیکنه. :)
تو جستجوهایی که انجام دادم مشکلی در کد ندیدم. دوستان لطفا بررسی کنند و بنده رو راهنمایی کنند. ممنون
public class ActivityList extends ActivityEnhanced {
@Override
protected void onResume() {
super.onResume();
adapter.notifyDataSetChanged();
}
public ArrayAdapter adapter;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
final ListView lstContent = (ListView) findViewById(R.id.lstContent);
EditText edtSearch = (EditText) findViewById(R.id.edtSearch);
adapter = new AdapterName(G.netTask);
lstContent.setAdapter(adapter);
Commands.getData();
adapter.notifyDataSetChanged();
edtSearch.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence cs, int arg1, int arg2,
int arg3) {
ActivityList.this.adapter.getFilter().filter(cs);
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
});
}
}
در ضمن با اضافه کردن
adapter.notifyDataSetChanged();
یا
ActivityMain.this.adapter.notifyDataSetChanged();
بعد از کد
ActivityMain.this.adapter.getFilter().filter(cs);
مشکل حل نشد. :)
0
0
notifyDataSetChange (11 سال پیش)
0
0
چرا ActivityMain.this ؟ اول this رو بردار و امتحان کن (11 سال پیش)
+1
0
this رو برداشتم. از من خواست که adapter رو استاتیک کنم و من هم اون رو استاتیک کردم. اجرا کردم و همچنان مشکل پا برجا بود. اصلا اگر بخوام یک جستجو در لیست ویو بزارم غیر از این روش چه روش دیگهای رو پیشنهاد میکنید؟ (11 سال پیش)
0
0
یه حلقه for می ذاری و یه آرایه temp می آری و اون رو با مقادیری که می خواهی پر می کنی (11 سال پیش)
0
0
ممنون میشم بیشتر راهنمایی کنی. دقیق متوجه نشدم. یعنی با مقدار جدید بره تمام آرایهها رو بگرده و مقادیر مشابه رو نشون بده؟ (11 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
Hossein Kurd
11 سال پیش
0
0
روش دوم : {به علت سنگین بودن در اجرا روی برخی دیوایس ها و =استاندارد نبودن سلوشن توصیه نمی شه}
یک ArrayList از توع همون ArrayList بساز و هر بار توی addtextchange تعیین کن
for(int i=0 ; i< myArray.size(); i++){
if(myArray.get(i).contains(cs)){
myTempArray.add(myArray.get(i));
}
}
و بعد myTempArray رو به adapter بده و setDataSetChanged کن
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .