العودة إلى موقع برمج

Adding custom suggestions in searchview

#1

السلام عليكم
بحثت كثيرا عن هذه المشكلة وحتى الان لم اجد حلا لها ومن المؤكد انه يوجد هنا من يستطيع المساعدة

قمت بتجربة تطبيق هذه شاشته الرئيسية بها عدد من العناصر

عندما اقوم بالضغط على عنصر معينة يفتح عناصر خاصة به ولنقم بالضغط على اول شركة miavit

تفتح العناصر الاتية من قواعد بيانات ويعرضها فى recyclerview

الان عندما اضغط على عنصر يفتح تفاصيل هذا العنصر والذى يختلف ايضا من واحد لاخر

كالآتى

قمت باضافة searchview
الان اريد اظهار مقترحات عند كتابة اى حرف من العناصر الموجودة بالصورة الثانية وعند الضغط على اى مقترح تفتح الاكتيفيتى الخاصة به كما فى الصورة الثالثة

برجاء المساعدة وشكرا

#2

يمكنك قراءة معلومات واقتراحات يمكن ان تساعدك على تحقيق ماتريد من الروابط:

https://developer.android.com/guide/topics/search/adding-custom-suggestions

1 Like
#3

استطعت اظهار العناصر بمجرد البحث عن طريق هذا الكود

 db =  DatabaseAccess.getInstance(this);
    db.open();
    ArrayList<Product> products = db.getallproducts();
    final String[] suggestions = new String[products.size()];
    for (int i = 0; i < products.size(); i++) {
        suggestions[i] = products.get(i).getPRODUCTS();
    }

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

   searchView = (MaterialSearchView) findViewById(R.id.search_view);
    searchView.setVoiceSearch(false);
    searchView.setCursorDrawable(R.drawable.custom_cursor);
   //searchView.setSuggestions(getResources().getStringArray(R.array.query_suggestions));
  searchView.setSuggestions(suggestions);

ولكن المشكلة التى تقابلنى الان بعد الضغط على العنصر الذى يظهر فى البحث كيف يفتح التفاصيل الخاصة به اى الصورة الثالثة

انا استخدم هذه الميثود

 searchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {


            for (String search : suggestions)
            {
                if (query.equals(search)){
                    Intent intent = new Intent(MainActivity.this,productDetails.class);
                    startActivity(intent);
                }

            }

            return false;
        }

ولكنها تفتح صفحة فارغة لانى فى الاصل ارسل البيانات من خلال explicit intent فى الكلاس الخاص بكل شركة ولكن لا اعرف كيف فظبط الكود داخل الميثود لكل المنتجات

1 Like