Всякий раз, когда я ищу с текстом, макет не показывает ничего, но поиск с идентификатором делает - PullRequest
0 голосов
/ 04 июня 2019

У моего приложения есть представление списка с интерфейсом поиска с использованием API, связанного с онлайновой базой данных. Моя проблема заключается в том, что функция поиска работает с идентификатором, но не тогда, когда я нажимаю на предложение ключевого слова в представлении автозаполнения текста

Я попытался изменить API, мне удалось получить все данные, но это делает функцию поиска бесполезной

без ошибок, но работает только с идентификатором вместо текста

SubCategoryActivity.class

package in.net.nihal.nobbi;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.constraint.ConstraintLayout;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewManager;
import android.view.ViewStub;
import android.widget.AdapterView;
import android.widget.ExpandableListView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.RetryPolicy;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.Gson;
import com.pixplicity.easyprefs.library.Prefs;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

import in.net.nihal.nobbi.adapter.SubCatAdapter;
import in.net.nihal.nobbi.classes.BaseActivity;
import in.net.nihal.nobbi.impl.CartDao;
import in.net.nihal.nobbi.model.CartData;
import in.net.nihal.nobbi.model.SubCatModel;
import in.net.nihal.nobbi.utils.Constants;
import in.net.nihal.nobbi.utils.Util;
import in.net.nihal.nobbi.utils.Utility;

public class SubCategoryActivity extends BaseActivity {

    private ProgressDialog pd;
    private SubCatModel subCatModel;
    private SubCatAdapter subCatAdapter;
    private ListView listView;
    private String ID, TITLE;
    private CartDao cartDao;
    private String URL
            , ID_KEY;
    private TextView txtViewCount;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_news);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        cartDao = new CartDao(this);
        try {
            Bundle extras = getIntent().getExtras();
            if (extras != null) {
                ID = extras.getString("ID");
                TITLE = extras.getString("TITLE");
                Log.d("aa", ID);
                Log.d("aaa", TITLE);
            }
            this.setTitle(TITLE);
            if (Constants.VENDOR_STATUS.equals("1")) {
                URL = "search.php";
                ID_KEY = "service";
            } else {
                URL = "sub_category.php";
                ID_KEY = "id";
            }
            listView = (ListView) findViewById(R.id.listView);
            if (Utility.checkInternetConnection(getApplicationContext())) {
                subCatData();
            } else {
                Util.customToast(getApplicationContext(), getString(R.string.internet_unavailable));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }


    @Override
    protected void onResume() {
        super.onResume();
        if (Constants.refreshFlag) {
            updateHotCount();
            subCatAdapter.notifyDataSetChanged();
        }
    }

    @Override
    public boolean onSupportNavigateUp() {
        finish();
        return true;
    }

    private void subCatData() {
        pd = ProgressDialog.show(SubCategoryActivity.this, "",
                getString(R.string.please_wait));
        pd.setCancelable(false);

        RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
        StringRequest stringRequest = new StringRequest(Request.Method.POST,
                Constants.BASE_URL + URL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        if (pd != null)
                            pd.dismiss();

                        try {

                            JSONObject obj = new JSONObject(response.toString());
                            Log.d("Response-->", obj.toString());
                            if (obj.getString("status").equals("1")) {
                                subCatModel = new Gson().fromJson(obj.toString(), SubCatModel.class);
                                subCatAdapter = new SubCatAdapter(SubCategoryActivity.this, subCatModel, SubCategoryActivity.this);
                                listView.setAdapter(subCatAdapter);
                            } else {
                            }

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        if (pd != null)
                            pd.dismiss();
                        Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                }) {
            @Override
            protected Map<String, String> getParams() {
                Map<String, String> params = new HashMap<String, String>();
                params.put(ID_KEY, ID);
                params.put("city", Prefs.getString(Constants.SharedPreferences_City, "").trim());
                return params;
            }
        };

        int socketTimeout = 30000;
        RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
        stringRequest.setRetryPolicy(policy);
        requestQueue.add(stringRequest);

    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        final View notificaitons = menu.findItem(R.id.action_cart).getActionView();

        txtViewCount = (TextView) notificaitons.findViewById(R.id.txtCount);
        updateHotCount();
        notificaitons.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //    TODO
                Constants.refreshFlag = true;
                Intent cart = new Intent(getApplicationContext(), CartActivity.class);
                cart.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(cart);
            }
        });
        return true;
    }

    public void updateHotCount() {
        Constants.refreshFlag = true;
        if (cartDao.getAll() != null) {
            final int count = cartDao.getAll().size();
            if (count < 0) return;
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    if (count == 0)
                        txtViewCount.setVisibility(View.GONE);
                    else {
                        txtViewCount.setVisibility(View.VISIBLE);
                        txtViewCount.setText(Integer.toString(count));
                        // supportInvalidateOptionsMenu();
                    }
                }
            });
        }

    }

    public void addItemInCart(SubCatModel.NewsBean newsBean, final int quantity,
                              String press, final String buyPrice) {
        if (cartDao.isRecordExist(newsBean.getId(), newsBean.getSub_category(), newsBean.getChild_category()) > 0) {
            if (quantity == 0){
                deleteItemFromCart(newsBean);
            }
            else {
                cartDao.updateData(newsBean.getId(),
                        newsBean.getSub_category(), newsBean.getChild_category(),
                        quantity, buyPrice);
            }
        } else {
            if (quantity == 0){
                Toast.makeText(this, "Units should be at least 1", Toast.LENGTH_SHORT).show();
            }
            else {
                CartData cartData = new CartData(newsBean.getId(), newsBean.getMain_category(),
                        newsBean.getSub_category(), newsBean.getChild_category(), newsBean.getAmount_service(),
                        newsBean.getSubcategory_image(), "sub_cat", String.valueOf(quantity), newsBean.getAmount_service(),
                        newsBean.getInspection());
                cartDao.insert(cartData);
                Toast.makeText(this, "Successfully added in cart", Toast.LENGTH_SHORT).show();
            }

        }

        updateHotCount();
    }

    private void deleteItemFromCart(SubCatModel.NewsBean newsBean) {
        if (cartDao.delete(newsBean.getId(),
                newsBean.getSub_category(), newsBean.getChild_category()) == 1) {
            updateHotCount();
            Toast.makeText(getBaseContext(), "Successfully deleted from cart", Toast.LENGTH_SHORT).show();

        }
    }



}  `



...