Получите ошибку при заполнении данных залпа в просмотр списка - PullRequest
0 голосов
/ 28 мая 2019

Я хочу заполнить все данные в приложении для Android Volley, я могу сделать это с простым TextView компонентом, но не могу сделать это с ListView и постоянно получаю ошибку в ArrayAdapter.

OneЕще больше, когда приложение загружается, тогда я вызвал функцию, которая показывает данные, хранящиеся в базе данных, и снова вызываю ее, когда нажимаю кнопку вставки.Но он показывает мне дубликаты данных, например, 3 записи, добавленные в мою базу данных, когда я загружаю приложение, затем показывает мне 3 записи и при нажатии на кнопку вставки (в основном показывает 4 записи, 3 записи и 1 новый), но он показывает 7 рекордных средних дублирующих записей,Так что будьте добры проверить мой код и предложить мне помощь

package com.darkcoderz.retrofit;


public class MainActivity extends AppCompatActivity {

ListView listView;
EditText sms;
Button send;
TextView showdata;

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

    listView = (ListView) findViewById(R.id.listViewHeroes);


    sms = (EditText) findViewById(R.id.sms);
    send = (Button) findViewById(R.id.send);
    showdata = (TextView) findViewById(R.id.showdata);

    getdata();

    send.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            insertdata();
            getdata();
        }
    });

}

private void getdata() {

    final String urldata = "http://192.168.10.4/volley/api.php";

    RequestQueue requestq = Volley.newRequestQueue(MainActivity.this);

    // Initialize a new JsonArrayRequest instance
    JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, urldata, null, new Response.Listener<JSONArray>() {
        @Override
        public void onResponse(JSONArray response) {
            // Do something with response
            //mTextView.setText(response.toString());

            // Process the JSON
            try {
                // Loop through the array elements
                JSONObject student = null;
                for (int i = 0; i < response.length(); i++) {
                    // Get current json object
                    student = response.getJSONObject(i);
//                        String age = student.getString("email");
                }
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, student);
                listView.setAdapter(adapter);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    // Do something when error occurred

                    Toast.makeText(MainActivity.this, "Something Went Wrong", Toast.LENGTH_SHORT).show();
                }
            }
    );

    // Add JsonArrayRequest to the RequestQueue
    requestq.add(jsonArrayRequest);
}

private void insertdata() {
    String urlvolley = "http://192.168.10.4/volley/register.php";
    final String fsms = sms.getText().toString();

    RequestQueue reqque = Volley.newRequestQueue(MainActivity.this);

    StringRequest stringRequest = new StringRequest(Request.Method.POST, urlvolley, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            if (response.equals("success")) {
                Toast.makeText(MainActivity.this, "Sms sent", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(MainActivity.this, "Already exist", Toast.LENGTH_SHORT).show();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(MainActivity.this, "Something went wrong", Toast.LENGTH_SHORT).show();
        }
    }) {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<>();
            params.put("sms", fsms);
            return params;
        }
    };
    reqque.add(stringRequest);
}

}
...