Я хочу заполнить все данные в приложении для 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);
}
}