Это мой файл "Активность", в котором я использовал представление поиска и представление переработчика
При этом, когда я нажимал на кнопку просмотра поиска, данные представления переработчика не отображаются и когда я нажимаю обратно на экран поиска, данные снова не отображаются.
А также мне приходится искать данные, используя вид поиска, но они не дают результатов поиска
, что я делаю в своей ошибке код
пожалуйста, скажите мне
Спасибо:)
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>