【问题标题】:Duplicate values listView - Android重复值列表视图 - Android
【发布时间】:2021-12-06 15:43:06
【问题描述】:

我正在使用 Android Studio 开发一个 Android 应用程序,我遇到了下一个问题:这是我的屏幕,没有搜索任何内容。

Screen

我第一次搜索时效果很好,但是当我再次搜索时,它会重复我的值。

First Search

Second Search - duplicate results

这是我调用主机并使用适配器时的代码:

cliente.post(URL, new AsyncHttpResponseHandler() {


    @Override
    public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
        if (statusCode == 200) {


            try {
                JSONArray jsonArray = new JSONArray(new String(responseBody));
                for (int i = 0; i < jsonArray.length(); i++) {
                    nombreRepuestoList.add(jsonArray.getJSONObject(i).getString("DESCRIPCION"));
                    referenciaRepuestoList.add(jsonArray.getJSONObject(i).getString("REFERENCIA_REPUESTO"));
                }


                    ArrayAdapter adaptermaquina = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_2, android.R.id.text1, nombreMaquinaList) {
                        @Override
                        public View getView(int position, View convertView, ViewGroup parent) {
                            View view = super.getView(position, convertView, parent);
                            TextView text1 = (TextView) view.findViewById(android.R.id.text1);
                            TextView text2 = (TextView) view.findViewById(android.R.id.text2);

                            text1.setText(nombreMaquinaList.get(position));
                            text2.setText(referenciaMaquinaList.get(position));
                            return view;
                        }
                    };
                    adaptermaquina.notifyDataSetChanged();
                    listaResultado.setAdapter(adaptermaquina);

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

我需要一些帮助。

我尝试使用空适配器,但它不起作用,使用 listaResultado.clear() 也不起作用。

【问题讨论】:

    标签: android listview android-listview android-arrayadapter


    【解决方案1】:

    不需要清除适配器,只需清除列表值

     nombreRepuestoList.clear();
     referenciaRepuestoList.clear(); 
    

    在你的代码中

        if (statusCode == 200) {
         nombreRepuestoList.clear();//1st 
         referenciaRepuestoList.clear();//2nd 
            try {
                JSONArray jsonArray = new JSONArray(new String(responseBody));
                for (int i = 0; i < jsonArray.length(); i++) {
                    nombreRepuestoList.add(jsonArray.getJSONObject(i).getString("DESCRIPCION"));
                    referenciaRepuestoList.add(jsonArray.getJSONObject(i).getString("REFERENCIA_REPUESTO"));
                } 
    

    希望对你有用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-27
      • 2018-11-15
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      相关资源
      最近更新 更多