когда я щелкаю на панели поиска на панели действий, видимость данных из моего окна просмотра исчезает, а также не работает панель поиска - PullRequest
0 голосов
/ 20 февраля 2020

Это мой файл "Активность", в котором я использовал представление поиска и представление переработчика

При этом, когда я нажимал на кнопку просмотра поиска, данные представления переработчика не отображаются и когда я нажимаю обратно на экран поиска, данные снова не отображаются.

А также мне приходится искать данные, используя вид поиска, но они не дают результатов поиска

, что я делаю в своей ошибке код

пожалуйста, скажите мне

Спасибо:)

BookDetailsActivity. java

    private String Url = EndPoints.BASE_URL + EndPoints.MANAGE_BOOK_DATA;
    private RecyclerView rcvBookDetails;
    private AddBookAdapter addBookAdapter;
    private List<AddBookPogo> bookPogoList;
    private ProgressBar progressBar;
    private String UID, UCity;
    private TextView txtmsg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_book_details);

        RequestQueue queue = Volley.newRequestQueue(this);
        queue.getCache().clear();

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        txtmsg = findViewById(R.id.txtMessage);

        SharedPreferences spuser = getSharedPreferences("user_data", MODE_PRIVATE);
        UID = spuser.getString("user_id", "");

        rcvBookDetails = findViewById(R.id.rcvBookDetails);
        bookPogoList = new ArrayList<>();

        progressBar = findViewById(R.id.progressBar1);

        @SuppressLint("WrongConstant") LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
        rcvBookDetails.setLayoutManager(linearLayoutManager);

        displayData();
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        startActivity(new Intent(BookDetailsActivity.this, DashboardActivity.class));
        finish();
    }

    public boolean onSupportNavigateUp() {
        onBackPressed();
        return true;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.search_menu, menu);

        MenuItem searchItem = menu.findItem(R.id.action_search);
        SearchView searchView = (SearchView) searchItem.getActionView();

        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                addBookAdapter.getFilter().filter(newText);
                return false;
            }
        });
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.menu.search_menu) {
            return true;
        }
        //noinspection SimplifiableIfStatement
        return true;
    }

    private void displayData() {
        JSONObject jObjbd = new JSONObject();
        try {
            jObjbd.put("select_book_details", "true");
        } catch (JSONException e) {
            e.printStackTrace();
        }

        JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, Url, jObjbd,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {

                        try {

                            String sts = response.getString("status");
                            if (sts.equals("no_record_found")) {
                                txtmsg.setText("Sorry! Not any Book Request.");
                            } else {
                                JSONArray bdArray = response.getJSONArray("fetch_book");
                                Log.e("ArrayData:", String.valueOf(bdArray));
                                for (int j = 0; j < bdArray.length(); j++) {
                                    JSONObject object = bdArray.getJSONObject(j);

                                    AddBookPogo addBookPogo = new AddBookPogo();
                                    addBookPogo.setbTitle(object.getString("db_title"));
                                    addBookPogo.setbAuthor(object.getString("db_author"));
                                    addBookPogo.setbBranch(object.getString("db_branch"));
                                    addBookPogo.setbYear(object.getString("db_year"));
                                    addBookPogo.setbIsbn(object.getString("db_isbn_number"));
                                    addBookPogo.setbLanguage(object.getString("db_language"));
                                    addBookPogo.setbSubject(object.getString("db_subject"));
                                    addBookPogo.setbDonateType(object.getString("db_donate_type"));
                                    addBookPogo.setbPrice(object.getString("db_price"));
                                    addBookPogo.setbPublisher(object.getString("db_publiser"));
                                    addBookPogo.setbCoverpage(object.getString("db_cover_page"));
                                    addBookPogo.setbStatus(object.getString("db_status"));
                                    addBookPogo.setbDescription(object.getString("db_description"));
                                    addBookPogo.setbFeedback(object.getString("db_feedback"));
                                    addBookPogo.setbUserId(object.getString("user_id"));
                                    addBookPogo.setbId(object.getString("db_id"));
                                    addBookPogo.setbAddDate(object.getString("db_add_book_date"));

                                    bookPogoList.add(addBookPogo);
                                }
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                            Log.e("Error", e.getMessage());
                        }

                        addBookAdapter.notifyDataSetChanged();
                        progressBar.setVisibility(View.GONE);

                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(BookDetailsActivity.this, error.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                });


        addBookAdapter = new AddBookAdapter(bookPogoList, this);
        rcvBookDetails.setAdapter(addBookAdapter);

        request.setRetryPolicy(new DefaultRetryPolicy(200 *
                30000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
        Volley.newRequestQueue(this).add(request);
    }
}

Это Файл моего адаптера

AddBookAdapter. java

public class AddBookAdapter extends RecyclerView.Adapter<AddBookAdapter.ViewHolder> implements Filterable {

    private List<AddBookPogo> list;
    private List<AddBookPogo> fullList;
    private Context rContext;

    public AddBookAdapter(List<AddBookPogo> list, Context rContext) {
        this.list = list;
        this.rContext = rContext;
        fullList = new ArrayList<>(list);
    }

    @NonNull
    @Override
    public AddBookAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_book_details, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull AddBookAdapter.ViewHolder holder, int position) {

        final AddBookPogo addBookPogo = list.get(position);
        holder.txtbtitle.setText(addBookPogo.getbTitle());
        holder.txtbauthor.setText(addBookPogo.getbAuthor());
        holder.txtbaddby.setText(addBookPogo.getbUserId());
        holder.txtbfor.setText(addBookPogo.getbDonateType());
        holder.txtbsubject.setText(addBookPogo.getbSubject());
        // holder.txtbdatetime.setText(addBookPogo.getb());


        holder.crdName.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                SharedPreferences spbookdata = rContext.getSharedPreferences("single_book_data", rContext.MODE_PRIVATE);
                spbookdata.edit().clear();
                spbookdata.edit().putString("book_id",addBookPogo.getbId()).commit();

                Intent intent=new Intent(rContext, ViewBookDetailsActivity.class);
                rContext.startActivity(intent);
            }
        });

    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    @Override
    public Filter getFilter() {
        return exampleFilter;
    }

    private Filter exampleFilter = new Filter() {
        @Override
        protected FilterResults performFiltering(CharSequence charSequence) {
            List<AddBookPogo> filteredList = new ArrayList<>();

            if(charSequence == null || charSequence.length() == 0)
            {
                filteredList.addAll(fullList);
            }
            else
            {
                String filterPattern = charSequence.toString().toLowerCase().trim();

                for (AddBookPogo item : fullList)
                {
                    if(item.getbTitle().toLowerCase().contains(filterPattern))
                    {
                        filteredList.add(item);
                    }
                }
            }

            FilterResults results = new FilterResults();
            results.values = filteredList;

            return results;
        }

        @Override
        protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
                list.clear();
                list.addAll(((List) filterResults.values));
                notifyDataSetChanged();
        }
    };

    public class ViewHolder extends RecyclerView.ViewHolder {

        TextView txtbtitle, txtbauthor, txtbfor, txtbaddby, txtbsubject, txtbdatetime;
        CardView crdName;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            this.crdName = itemView.findViewById(R.id.crdBookDetails);
            this.txtbtitle = itemView.findViewById(R.id.book_title);
            this.txtbauthor = itemView.findViewById(R.id.book_author);
            this.txtbaddby = itemView.findViewById(R.id.book_addby);
            this.txtbfor = itemView.findViewById(R.id.book_for);
            this.txtbsubject = itemView.findViewById(R.id.book_subject);
            this.txtbdatetime = itemView.findViewById(R.id.book_add_datetime);


        }
    }
}

Это файл меню

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_search"
        android:title="Search"
        app:actionViewClass="androidx.appcompat.widget.SearchView"
        app:showAsAction="ifRoom|collapseActionView" />

</menu>

Этот XML файл, в котором установлено представление рециркулятора

activity_book_details. xml

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ProgressBar
            android:id="@+id/progressBar1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true" />

        <TextView
            android:id="@+id/txtMessage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_marginStart="15dp"
            android:layout_marginEnd="15dp"
            android:text=""
            android:textAlignment="center"
            android:textSize="20sp"
            android:textStyle="bold" />

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/rcvBookDetails"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

            </androidx.recyclerview.widget.RecyclerView>

        </ScrollView>
</RelativeLayout>
...