簡體   English   中英

獲取列表的項目位置和字符串(Android)

[英]Get item position and string of a List (Android)

單擊時,我需要舉個例子,祝酒在ListView中的位置和項目的字符串。 到現在為止,它只給我職位,而不給我字符串。 我需要幫助以獲取相同位置的字符串

這是我的代碼

public void mandaOnClick(View v){

    try {
        View parentRow = (View) v.getParent();
        lista = (ListView) parentRow.getParent();
        final int position = lista.getPositionForView(parentRow);
        //this is not working
        final String item = (String) lista.getItemAtPosition(position);
        //this is not working
        String string = (String) lista.get(position);

        Toast.makeText(getBaseContext(),"Your " + position + string + item, Toast.LENGTH_SHORT).show();
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(getBaseContext(),"Nothing", Toast.LENGTH_SHORT).show();
    }
}

這是我在列表中設置適配器的方式

public class JsonTask extends AsyncTask<URL, Void, List<Animal>> {

    @Override
    protected List<Animal> doInBackground(URL... urls) {
        List<Animal> contactos = null;


        HttpURLConnection con = null;
        try {

            // Establecer la conexión
            con = (HttpURLConnection) urls[0].openConnection();
            con.setConnectTimeout(15000);
            con.setReadTimeout(10000);

            // Obtener el estado del recurso
            int statusCode = con.getResponseCode();

            if (statusCode != 200) {
                contactos = new ArrayList<>();
                contactos.add(new Animal(null, null, null, null));


            } else {

                // Parsear el flujo con formato JSON
                InputStream in = new BufferedInputStream(con.getInputStream());

                // JsonAnimalParser parser = new JsonAnimalParser();
                GsonAnimalParser parser = new GsonAnimalParser();
                contactos = parser.leerFlujoJson(in);
            }

        } catch (Exception e) {
            e.printStackTrace();

        } finally {
            con.disconnect();
        }
        return contactos;
    }



    @Override
    protected void onPostExecute(final List<Animal> contactos) {
        /*
        Asignar los objetos de Json parseados al adaptador
         */
        if (contactos != null) {
            adaptador = new AdaptadorDeAnimales(getBaseContext(), contactos);
            lista.setAdapter(adaptador);



        } else {
            Toast.makeText(
                    getBaseContext(),
                    "Error",
                    Toast.LENGTH_SHORT)
                    .show();
        }

    }
}

}

編輯:

您嘗試從ListView的布局聲明中調用onClick方法來做錯了。 您應該將onItemClickListener附加到Activity / Fragment類中的ListView上。

首先,在Activity / Fragment類中實現OnItemClickListener接口。 然后設置監聽器:

lista.setOnItemClickListener(this);

並在onItemClick方法中:

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) {
    String str = (String) adaptador.getItem(position);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM