Ich habe online Code verwendet, um JSON zu einer Listenansicht in Android zu analysieren. Nun möchte ich, indem ich auf ein Element in der Listenansicht klicke, die Daten in der angeklickten Zeile an eine andere Aktivität senden. Andere Lösungen versucht, aber nicht funktioniert.Wie kann der ausgewählte Artikel in einer JSON-Listenansicht an eine andere Aktivität gesendet werden?
Woran ich gerade arbeite, senden Sie ein Zitat und seinen Autor zu einer anderen Aktivität.
public class MainActivity extends AppCompatActivity {
private String TAG = MainActivity.class.getSimpleName();
public ListView lv;
ArrayList<HashMap<String, String>> contactList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contactList = new ArrayList<>();
lv = (ListView) findViewById(R.id.list);
new GetContacts().execute();
}
private class GetContacts extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
Toast.makeText(MainActivity.this,"Json Data is downloading",Toast.LENGTH_LONG).show();
}
@Override
protected Void doInBackground(Void... arg0) {
HttpHandler sh = new HttpHandler();
// Making a request to url and getting response
String url="https://gist.githubusercontent.com/chefk5/b2a6b17037e989b902834a70cc9b4ce7/raw/667f7fe8aa74cea7e54dfb69a0d2015f7b934f0d/quotes.json";
String jsonStr = sh.makeServiceCall(url);
Log.e(TAG, "Response from url: " + jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// Getting JSON Array node
JSONArray contacts = jsonObj.getJSONArray("quotes");
// looping through All Contacts
for (int i = 0; i < contacts.length(); i++) {
JSONObject c = contacts.getJSONObject(i);
String quote = c.getString("quote");
String name = c.getString("name");
// tmp hash map for single contact
HashMap<String, String> contact = new HashMap<>();
// adding each child node to HashMap key => value
contact.put("quote", quote);
contact.put("name", name);
// adding contact to contact list
contactList.add(contact);
}
} catch (final JSONException e) {
Log.e(TAG, "Json parsing error: " + e.getMessage());
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Json parsing error: " + e.getMessage(),
Toast.LENGTH_LONG).show();
}
});
}
} else {
Log.e(TAG, "Couldn't get json from server.");
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Couldn't get json from server. Check LogCat for possible errors!",
Toast.LENGTH_LONG).show();
}
});
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
ListAdapter adapter = new SimpleAdapter(MainActivity.this, contactList,
R.layout.list_item, new String[]{ "quote","name"},
new int[]{R.id.email,R.id.mobile});
lv.setAdapter(adapter);
}
}
von wo aus Ich kann getQuete() und getName() bekommen? – Chefk5
Es hat funktioniert, danke! – Chefk5