2014-07-26 23 views
2

我在我的代碼中包含2個按鈕和2個TextView的列表視圖。我想通過點擊按鈕訪問每個textView的文本。這裏是適配器的代碼...從getItem()創建對象並訪問字段

public class TracksAdapter extends SimpleAdapter { 
    public TracksAdapter(Context context, List<? extends Map<String, ?>> data, int  resource, String[] from, int[] to) { 
     super(context, data, resource, from, to); 
    } 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     final TracksAdapter proxy = this; 
     final View trackView = super.getView(position, convertView, parent); 

     Button dl = (Button) trackView.findViewById(R.id.dl); 
     dl.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       // Do something with data : proxy.getItem(position) 
       TextView tv = (TextView) trackView.findViewById(R.id.track); 
       String track = tv.getText().toString(); 
       Toast.makeText(getApplicationContext() , track , Toast.LENGTH_LONG); 
      } 
     }); 

     Button play = (Button) trackView.findViewById(R.id.play); 
     play.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       // Do something with data : proxy.getItem(position) 
       Toast.makeText(getApplicationContext() , String.valueOf(proxy.getItem(position)).indexOf("file=") , Toast.LENGTH_LONG); 
      } 
     }); 

     return trackView; 
    } 
} 

proxy.getItem(position)的結果是一樣的東西{id=4 , name=foo , track=fofoo}

我應該怎麼做訪問「富」 ????

+0

'proxy.getItem(位置).name' – Pat

+0

我已經嘗試過,但沒有指定名稱。這是不正確的。 –

+0

你指的是'iosched'的TracksAdapter?如果是這樣,那麼在該類中沒有名爲'name'的字段。請參閱其API。如果是你自己的班級,請發佈其代碼。 – Pat

回答

0

嘗試他的代碼來的onClick獲取文本:

TextView tv = (TextView) parent.findViewById(R.id.your_textView_position_id_from_xml); 
String s = tv.getText().toString(); 
+0

它並不適用於所有的按鈕!我終於必須解析該字符串({id = 4,name = foo,track = fofoo})才能獲得名稱的值! –

+0

你是說,它爲一些工作,並沒有爲別人? – Pat