读取 ListView 中的项目 Android

Read item in ListView Android

我想获取使用 hasmap 制作的列表视图的信息,为此我编写了以下代码:

public class MainActivity extends Activity {

ListView rdv;
HashMap<String, String> map;
ArrayList<HashMap<String, String>> rdvous = new ArrayList<>();
String URL;

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


    URL = "http://172.16.32.101/?mot=listerrdv&id=5";

    rdv = (ListView)findViewById(R.id.listRDV);
    new HttpAsyncTask().execute(URL);

    rdv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        @SuppressWarnings("unchecked")
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(getBaseContext(),map.get("titre"),Toast.LENGTH_LONG).show();
        }
    });
}

。 . .

private class HttpAsyncTask extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... urls) {

        return GET(urls[0]);
    }
    // onPostExecute displays the results of the AsyncTask.
    @Override
    protected void onPostExecute(String result) {
        try {
            JSONArray json = new JSONArray(result);
            String str = "";

            for(int i = 0 ; i<json.length() ; i++) {
                map = new HashMap<String, String>();
                str ="";
                str += "RDV " + (i+1) + "\n";
                str += "jour: " + json.getJSONObject(i).getString("jour") + "\n";
                str += "heure: " + json.getJSONObject(i).getString("heure") + "\n";
                str += "perso: " + json.getJSONObject(i).getString("perso") + "\n";
                str += "acte: " + json.getJSONObject(i).getString("acte") + "\n";
                map.put("titre",str);
                str = "";
                str += json.getJSONObject(i).getString("idrdv");
                map.put("description",str);
                rdvous.add(map);
            }
            SimpleAdapter adapt = new SimpleAdapter (getBaseContext(), rdvous, R.layout.list_rdv,
                    new String[] {"titre", "description"}, new int[] {R.id.titre, R.id.description});


            rdv.setAdapter(adapt);


        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

我收到数据并且列表视图正常但是当我点击一个项目时,我只收到最后一个项目...

你能帮帮我吗?

拉米找到了这个解决方案:

Toast.makeText(getBaseContext(), rdvous.get(position).get("titre"),Toast.LENGTH_LONG).show();

它的工作

谢谢拉米 ;-)