[英]how to get the index and textview of the selected item in listview?
我有一個來自webservice的listview,我想獲取所選項目的索引和textview。我的列表視圖是
company symbol
android an
iphone ip
blackderry bb
. .
. .
. .
所以告訴我如何從webservice.list中獲取列表視圖中符號的索引和textview.i使用了兩種方法
第一種方法:
protected void onListItemClick(ListView l, View v, int position,long id)
{
super.onListItemClick( l, v, position, id);
ID = id;
int selectedPosition = l.getSelectedItemPosition();
index=String.valueOf(selectedPosition);
Log.e("index value","index"+index);
TextView txt=(TextView)findViewById(R.id.symboltext);
TextView temp=(TextView)v;
txt.setText(temp.getText());
Log.e("text",txt.toString());
}
在上面的代碼中,logcat顯示的索引為-1,無法顯示txt。
第二種方法:
listview.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
public void onItemSelected(AdapterView parentView, View childView, int position, long id)
{
String text = ((TextView)childView.getText()).toString();
//The above text variable has the text value of selected item
// position will reflect the index of selected item
}
public void onNothingSelected(AdapterView parentView)
{
}
});
在上面的方法中,listview沒有執行onclick操作。 所以請告訴我如何在列表視圖中獲取所選項目的索引和文本視圖。
最好的祝福
提前致謝
試試這個代碼。 並檢查您的logcat。 它應該為您帶來預期的結果。
protected void onListItemClick(ListView l, View v, int position,long id)
{
super.onListItemClick( l, v, position, id);
ID = id;
Log.e("index value","index"+position);
TextView txt = (TextView) v.findViewById(R.id.symboltext);
Log.e("text",txt.toString());
}
您可以使用哈希圖將您的字符串放入列表視圖
該鏈接將幫助您了解哈希圖如何工作以及如何從中保存和檢索字符串
我在Custom ListView
上嘗試過這樣的事情:
我的情況是:
要使用名為JSONArrayRequest
服務器從服務器中獲取三個對象,請執行以下操作:
ID (tvLvDocID)
Title (tvLvDocTitle)
Sub Title (tvLvDocSub Title)
ID
實際上是MySQL數據庫中項目列的ID
。
我所做的是:
listViewDoc.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
int myPosition = position;
String id_doc_from_lv = listViewDoc.getItemAtPosition(myPosition).toString();
Toast.makeText(getApplicationContext(), "ID is : " + id_doc_from_lv, Toast.LENGTH_LONG).show();
}
});
} catch (Exception e) {
e.printStackTrace();
}
但是我的問題是它正在返回Custom ListView
Title
。 我只需要ID
,我也在標題上方的ListView
顯示了ID
。 (這是另一個故事,我稍后將在該ID
應用INVISIBLE
屬性) 。
因為我只想要ID
。 所以我確實從這個答案中獲得了幫助:
當我在代碼中添加這些行時:
String tv_ID_Str= ((TextView)view.findViewById(R.id.tvLvDocID)).getText().toString();
並將此tv_ID_Str
稱為:
Toast.makeText(getApplicationContext(), "ID is : " + tv_ID_Str, Toast.LENGTH_LONG).show();
啊哈! 現在,我可以成功顯示tvLvDocID
並且可以從數據庫中檢索有關該ID
所有信息。
最終代碼如下所示:
listViewDoc.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
int myPosition = position;
String id_doc_from_lv = listViewDoc.getItemAtPosition(myPosition).toString();
// selected item
String tv_ID_Str = ((TextView)view.findViewById(R.id.tvLvDocID)).getText().toString();
Toast.makeText(getApplicationContext(), "ID is : " + tv_ID_Str, Toast.LENGTH_LONG).show();
}
});
} catch (Exception e) {
e.printStackTrace();
}
我回答的目的是像我這樣的人,他們花很多時間來做到這一點。 我希望這會對某人有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.