Android 获取listview中单击项的隐藏字段值
我无法获取单击项的隐藏字段值 我随后获取单击的listview项的隐藏值,但是 无法获取该值。我得到了Android 获取listview中单击项的隐藏字段值,android,listview,Android,Listview,我无法获取单击项的隐藏字段值 我随后获取单击的listview项的隐藏值,但是 无法获取该值。我得到了ClassCastException 该守则— listView.setOnItemClickListener(new OnItemClickListener() { //////////list view on click public void onItemClick(AdapterView<?> view, View arg1, int positio
ClassCastException
该守则—
listView.setOnItemClickListener(new OnItemClickListener()
{
//////////list view on click
public void onItemClick(AdapterView<?> view, View arg1,
int position, long arg3) {
String S = (String)view.getItemAtPosition(position); //This line gives exception
System.out.println("TextView vehicleSrc>>"+S);
//OR
String itemSelected = ((TextView)view.findViewById(R.id.vehicle_source)).getText().toString();
System.out.println("TextView vehicleSrc"+itemSelected); // this is giving blank
}
更新:
我已经在xml的隐藏字段中定义了上面的textview-
<TextView
android:id="@+id/vehicle_source"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:visibility="gone"/>
您不能像这里警告的那样将整数强制转换为字符串
03-20 12:47:08.742: E/AndroidRuntime(26965): FATAL EXCEPTION: main
03-20 12:47:08.742: E/AndroidRuntime(26965): java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
03-20 12:47:08.742: E/AndroidRuntime(26965): at com.iddl.main.EntryFragment$13$2.onItemClick(UserFragment.java:907)
如果要将整数转换为字符串,可以使用
Integer.toString( i )
像这个
String S = Integer.toString(view.getItemAtPosition(position)); //This line gives exception
System.out.println("TextView vehicleSrc>>"+S);
我认为您应该使用android Log.I/Log.d/Log.e来记录任何内容,而不是system.out.println:)
尝试此操作,您将获得单击的列表的值
String textOfSelectedItem;
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int id,
long position) {
// TODO Auto-generated method stub
textOfSelectedItem =((TextView) v).getText().toString();
Toast.makeText(getApplicationContext(), "Clicked is " + textOfSelectedItem, Toast.LENGTH_SHORT).show();
}
});
选择项的字符串文本;
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共控件单击(AdapterView arg0,视图v,内部id,
长仓){
//TODO自动生成的方法存根
textOfSelectedItem=((TextView)v.getText().toString();
Toast.makeText(getApplicationContext(),“Clicked is”+textof selecteditem,Toast.LENGTH_SHORT).show();
}
});
最后,我得到了单击项的隐藏字段值 所以,应该是这样
String itemSelected=((TextView)arg1.findviewbyd(R.id.vehicle_source)).getText().toString()代码>
而不是
String itemSelected = ((TextView)view.findViewById(R.id.vehicle_source)).getText().toString();
完整代码-
listView.setOnItemClickListener(new OnItemClickListener()
{
//////////list view on click
public void onItemClick(AdapterView<?> view, View arg1,
int position, long arg3) {
String itemSelected = ((TextView)arg1.findViewById(R.id.vehicle_source)).getText().toString();
System.out.println("TextView vehicleSrc"+itemSelected);
}
}
listView.setOnItemClickListener(新的OnItemClickListener()
{
//////////单击即可查看列表
公共单击(AdapterView视图、视图arg1、,
整数位置,长arg3){
String itemSelected=((TextView)arg1.findViewById(R.id.vehicle_source)).getText().toString();
System.out.println(“TextView vehicleSrc”+选定项);
}
}
Try Integer value=(Integer)view.getItemAtPosition(position);您也可以使用String s=String.valueOf(view.getItemAtPosition(position));试试这个…@Neil这给了我单击的项目位置,但我无法获得单击的项目隐藏字段值。请参阅更新。@saurabjain:android:visibility=“gone”
完全删除视图,而不仅仅是隐藏视图。第一行中有语法错误。它给出了-整型中的toString(int)方法不适用于参数(对象)
String textOfSelectedItem;
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int id,
long position) {
// TODO Auto-generated method stub
textOfSelectedItem =((TextView) v).getText().toString();
Toast.makeText(getApplicationContext(), "Clicked is " + textOfSelectedItem, Toast.LENGTH_SHORT).show();
}
});
String itemSelected = ((TextView)view.findViewById(R.id.vehicle_source)).getText().toString();
listView.setOnItemClickListener(new OnItemClickListener()
{
//////////list view on click
public void onItemClick(AdapterView<?> view, View arg1,
int position, long arg3) {
String itemSelected = ((TextView)arg1.findViewById(R.id.vehicle_source)).getText().toString();
System.out.println("TextView vehicleSrc"+itemSelected);
}
}