2015-08-30 26 views
-1

我想从列表中TextView的价值,但它总是给人最后的值不从所选位置的Android如何从列表视图中获得的TextView字符串值

public class myListAdapter extends ArrayAdapter<MyOrderData> implements OnClickListener { 

    public myListAdapter() { 

     super(context, R.layout.myorder_list_row, myorderlist); 

    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View itemView = convertView; 
     if (itemView == null) { 
      LayoutInflater inflater = (LayoutInflater) getContext() 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      itemView = inflater.inflate(R.layout.myorder_list_row, null); 
     } 

     // ///// 
     MyOrderData currentdata = myorderlist.get(position); 

     // TextView tvordernu, tvpackage, tvtotalgarment, tvorderdate, 
     // tvpickupdate, tvpickuptime, tvstatus; 

     txt_ticketno = (TextView) itemView.findViewById(R.id.tv_ticket_number); 
     txt_raise_date = (TextView) itemView.findViewById(R.id.tv_raise_date); 
     txt_service = (TextView) itemView.findViewById(R.id.tv_service); 
     txt_time = (TextView) itemView.findViewById(R.id.tv_time); 
     txt_status = (TextView) itemView.findViewById(R.id.tv_status); 
     txt_view = (TextView) itemView.findViewById(R.id.tv_view); 




     txt_ticketno.setText("" + currentdata.get_ticketnum()); 
     txt_raise_date.setText("" + currentdata.get_deliverdate()); 
     txt_service.setText("" + currentdata.get_service()); 
     txt_time.setText("" + currentdata.get_date()); 
     txt_status.setText("" + currentdata.get_status()); 




     txt_ticketno.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 


       Intent refresh = new Intent(context, Activity_ticket_details.class); 



       refresh.putExtra("fname",""+txt_ticketno.getText().toString()); 



       context.startActivity(refresh); 

      } 
     }); 


     return itemView; 



    } 

我需要的文本值

回答

1

您不应该在活动外部调用点击监听器。你想要做的是在你的活动中实现一个OnItemClickListener;您将获得(在其他参数中)点击视图的位置,并且可以从适配器中检索对应的MyOrderData对象,您可以从中获取所需的字符串。

ListView yourList = (ListView) findViewById(...); 
yourList.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      Object listItem = list.getItemAtPosition(position); 
    } 
}); 
0

我刚才提出的TextView的错误istead我可以使用下面的代码

refresh.putExtra(其中 “fname”, “” + currentdata.get_ticketnum()的toString());

相关问题