Android 获取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

我无法获取单击项的隐藏字段值

我随后获取单击的listview项的隐藏值,但是 无法获取该值。我得到了
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:)

  • 在未使用InstanceCof的情况下,切勿施放任何东西

    因此,理想情况下,您的代码应该是

    对象项=view.getItemAtPosition(位置)

  • 只需检查您使用的适配器类型。。getItem返回类型适配器


  • 尝试此操作,您将获得单击的列表的值

                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);
       }
    }