3

我的 ListView 有一个自定义适配器,它有多个 TextView。我想为我的 ListView 设置一个 onItemClickListener 并从 TextViews 中提取文本。我尝试使用这个:

String s =(String) ((TextView) mListView.findViewById(R.id.myNr)).getText(); 

但正如预期的那样,默认情况下它总是返回第一个列表项的值!(我猜是因为它没有从列表中指定项目 ID)

我也试过这个:

String s =  (((TextView) mListView.getItemAtPosition(myItemInt)).
                          findViewById(R.id.myNr)).toString();

没用!有什么建议么?

这是在以下功能下实现的:

mListView.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> myAdapter, View myView, 
                        int myItemInt, long mylng) {

             // String s statements

} 

编辑:

这是完整的代码:

 mListView_myentries.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> myAdapter, View myView, 
                        int myItemInt, long mylng) {

                    String workRequestSelected = (String) ((TextView) mListView_myentries.findViewById(R.id.work_request)).getText();
                    String activitySelected = (String) ((TextView) mListView_myentries.findViewById(R.id.activity)).getText();
                    String statusSelected = (String) ((TextView) mListView_myentries.findViewById(R.id.status)).getText();
                    String workRequestDescSelected = (String) ((TextView) mListView_myentries.findViewById(R.id.desc)).getText();
                    String actualHoursString = (String) ((TextView) mListView_myentries.findViewById(R.id.actual_hours)).getText();

}
4

2 回答 2

3

试试下面的代码

mListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> myAdapter, View myView,int myItemInt, long mylng) {
             String s =(String) ((TextView) myView.findViewById(R.id.myNr)).getText();
   }
}
于 2012-06-28T19:39:40.097 回答
0

这对我来说很完美,但是当我直接调用我的 listContacts(listview) 时,它总是给我第一条记录,但是当我调用传递给我的视图时,它就像一个魅力。

public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {
    String item = (((TextView)view.findViewById(R.id.txtVwConID)).getText().toString());
    Toast.makeText(getApplicationContext(), "you selected: " + item, Toast.LENGTH_SHORT).show();

如果您对我的代码有疑问,请在此处发布更多信息

于 2012-06-30T19:55:02.623 回答