[英]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.