2014-07-26 32 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