How To Send Values From A Selected Item On A Json Listview To Another Activity?
Solution 1:
HashMap
implements Serializable
so we can send HashMap
object using putExtra
and receive it using getSerializableExtra
TodasAsCategorias
activity
@Override
publicvoidonItemClick(AdapterView<?> pare, View view, int position, long id)
{
Intent intent = new Intent(TodasAsCategorias.this, MapsActivity.class);
intent.putExtra("data", listaPaises.get(position));
startActivity(intent);
}
In MapsActivity
protectedvoidonCreate(Bundle bundle) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
HashMap<String, String> hashMap = (HashMap<String, String>)intent.getSerializableExtra("data");
String lat = hashMap.get("Coord_LAT");
String longi = hashMap.get("Coord_LONG");
}
Solution 2:
Transmit your data to MapsActivity via Extras. Start activity like this:
Intent intent = newIntent(TodasAsCategorias.this, MapsActivity.class);
intent.putExtra("Coord_LAT", value);
intent.putExtra("Coord_LONG", value);
startActivity(intent);
And retrieve data in MapsActivity:
StringCoord_LAT= getIntent().getStringExtra("Coord_LAT");
StringCoord_LONG= getIntent().getStringExtra("Coord_LONG");
Solution 3:
The onItemClick() method, provides the "position" of the list item that was clicked. The item at the position contains the latitude and longitude that you need to pass to the other activity I guess. Then, the latitude and longitude can be passed as explained by the other answers, using Extras.
Solution 4:
Updated: since your listaPaises is an instance variable, @PavneetSingh answer would be more straight forward.
You may override the getItem(int position) of the SimpleAdapter to return the HashMap entry:
ListAdapter adapter = newSimpleAdapter(this, listaPaises, R.layout.list_item,
newString[]{"Designacao", "Coord_LAT", "Coord_LONG", "Coord_Zoom"},
new int[]{R.id.Designacao, R.id.Lat, R.id.Long, R.id.Zoom}) {
@OverridepublicObjectgetItem(int position) {
if (listaPaises!=null) {
return listaPaises.get(position);
}
returnsuper.getItem(position);
}
};
then in your ListView's setOnItemClickListener(...) method, you can get the returned entry by calling:
HashMap<String, String> pais = (HashMap<String, String>) adapter.getItem(position)
and pass the HashMap entry with Intent's putExtra() method to MapsActivity.
Kindly note that in order to call the adapter within the anonymous inner class, you would need to change the local variable ListAdapter adapter to instance variable of your class.
Post a Comment for "How To Send Values From A Selected Item On A Json Listview To Another Activity?"