Wie analysiere ich JSON in Android, das beim Klicken seine JSON-URL ändert.So parsen Sie JSON, um die JSON-URL zu ändern, wenn Sie auf
Dies ist My MainActivity.java;
import android.app.ProgressDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.widget.ListView;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private static final String URL_DATA ="http://example.com/app_services.php?d=";
private RecyclerView recyclerView;
ListView listView;
private RecyclerView.Adapter adapter;
private List<ListItem> listItems;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.myrecyclerView);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
listItems = new ArrayList<>();
loadRecyclerViewData();
}
private void loadRecyclerViewData(){
final ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setMessage("Loading News...");
progressDialog.show();
StringRequest stringRequest = new StringRequest(Request.Method.GET,
URL_DATA,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
progressDialog.dismiss();
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray array = jsonObject.getJSONArray("category");
for (int i =0; i<array.length();i++){
JSONObject o = array.getJSONObject(i);
ListItem item = new ListItem(
o.getString("d"),
o.getString("dirtitle"),
o.getString("folder_image")
);
listItems.add(item);
}
adapter = new MyAdapter(listItems,getApplicationContext());
recyclerView.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressDialog.dismiss();
Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
}
In diesem möchte ich die Url des Json, beim Klicken ändern. Von
http://example.com/app_services.php?d=
http://example.com/app_services.php?d=name
Die in diesem Beitrag verwendet die URL sind nicht die reale. Sie sind nur ein Beispiel. Und diese beiden URLs können verschiedene Objekte enthalten oder nicht.
Wie wäre es damit, 'URL_DATA' nicht endgültig zu machen und nur die Variable mit' concat' oder 'append' zu ändern? – Nico
eine Schnittstelle in recyclerview Adapter klicken und den Text beim Rückruf der Schnittstelle hinzufügen ... –
Wie concat oder append mit meinem Code verwenden? Irgendeine Idee –