在listview中有多条数据,每个数据有一个button,在button中绑定不同的数据,点击不同的button,向下一个界面传递不同的数据,要如何实现,期盼各位大侠的帮助。是android新手最好有个简单的例子让我能快速的测试。

解决方案 »

  1.   

    在Button 点击事件中 把你要传递的数据 封装起来 用intent.putExtra("标记", 数据);传到下一个activity,在下一个activity中在把数据取出来。OVAER!
      

  2.   

    您好啊,知道要把数据封装好了和button绑定,但是从服务器上传过来的信息如何和对应的button进行绑定呢,你怎么知道这个button点击要传递的是哪个信息。
      

  3.   

    用BaseAdapter关联数据,把从服务器传过来的数据封装在ArrayList中,在getView方法中,设置tag,根据不同的tag就可以区分不同的数据了。
      

  4.   

    各位大侠,做个例子可以吗,我对android一些东西还不太懂,能有个例子我可以测试下理解这些。
      

  5.   

    刚上传的:《Android知识系统总结》主要内容包括:
    1. 7个Android应用程序源代码。
    2. android入门到精通pdf。
    3. Android学习笔记。
    4. android开发入门与实践。
    5. android开发书籍1、android开发书籍2、android开发书籍3、android开发书籍4。
    6. android程序编写及调试新手入门.pdf。
    7. Android开发教程笔记完全版.pdf。
    8. android培训.ppt。
    9. Android应用开发揭秘.pdf。
    10. Android最佳学习路线图.pdf。
    11. Android最新应用开发技术及典型案例.pdf。
    你还等什么,而且不要分了,由于以前要的多,好多人都说我,从今天以后,只要我上传的资源,都不再超过0分. 
    地址:http://download.csdn.net/detail/wangxiangdong_sl/3619834
      

  6.   

    在Adapter里面的getView(int position, View convertView, ViewGroup parent) {}进行操作,通过position得到是listview里面的第几个cellview,那个position应该可以对应到你从服务器拿到的数据的index吧,然后在相应convertView里面找到那个button就可以了吧……
      

  7.   

    自己重写adapter类,然后再getview里面写BUTTON的点击事件,这样不同BUTTON点击就可以传出不同的值
      

  8.   

    楼上2个方法正确。贴个代码你看看。
    package com.renrenwei.adapter;import android.content.Context;
    import android.content.Intent;
    import android.content.res.Resources;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.View.OnClickListener;
    import android.widget.BaseAdapter;
    import android.widget.Button;
    import android.widget.ImageButton;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.TextView;import com.renrenwei.activity.R;
    import com.renrenwei.activity.TestMediaPlayer;
    import com.renrenwei.myanimation.MyAnimation;public class MainListAdapter extends BaseAdapter {
    private LayoutInflater layoutinflater;
    private View myview;
    private String title;
    private Context context;
    private final int Animation = 6;
    private final int messagenum = 5; public MainListAdapter(Context c, String title) {
    this.layoutinflater = LayoutInflater.from(c);
    this.title = title;
    this.context = c;
    } public int getCount() {
    return messagenum;
    } public Object getItem(int position) {
    return position;
    } public long getItemId(int position) {
    return position;
    } public View getView(int position, View convertView, ViewGroup parent) {
    myview = layoutinflater.inflate(R.layout.main_item, null);
    final TextView textView = (TextView) myview
    .findViewById(R.id.textview_number);
    TextView textView_main = (TextView) myview
    .findViewById(R.id.textview_weiguan);
    final TextView textView_user = (TextView) myview
    .findViewById(R.id.textview_user);
    textView_user.setText("裴江平:果然神马都是浮云。。");
    textView_main.setText(title);
    Button Button_Main_weiguan = (Button) myview
    .findViewById(R.id.Button_01);
    // ImageView imageview_Main_01 = (ImageView) myview
    // .findViewById(R.id.imageview_01);
    final ImageView imageview_Main_user = (ImageView) myview
    .findViewById(R.id.imageview_user);
    imageview_Main_user.setBackgroundResource(R.drawable.s);
    LinearLayout linearLayout_Mian_Tu = (LinearLayout) myview
    .findViewById(R.id.linearlayout_mian_tu);
    final LinearLayout linearLayout_Mian_user = (LinearLayout) myview
    .findViewById(R.id.linearlayout_usermessage);
    Button_Main_weiguan.setOnClickListener(new GoToMediaPlayer());
    linearLayout_Mian_Tu.setOnClickListener(new GoToMediaPlayer());
    ImageButton imagebutton_next = (ImageButton) myview
    .findViewById(R.id.imagebutton_main_next);
    Resources res = context.getResources();
    imagebutton_next.setBackgroundDrawable(res
    .getDrawable(android.R.drawable.arrow_down_float));
    ImageButton imagebutton_top = (ImageButton) myview
    .findViewById(R.id.imagebutton_main_top);
    imagebutton_top.setBackgroundDrawable(res
    .getDrawable(android.R.drawable.arrow_up_float));
    imagebutton_top.setOnClickListener(new OnClickListener() { public void onClick(View v) {
    MyAnimation ma = new MyAnimation(linearLayout_Mian_user,
    context);
    ma.load_start_Animation(Animation);
    imageview_Main_user.setBackgroundResource(R.drawable.b);
    textView_user.setText("芙蓉姐姐:没有姐做不到的事情!");
    } });
    imagebutton_next.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
    MyAnimation ma = new MyAnimation(linearLayout_Mian_user,
    context);
    ma.load_start_Animation(Animation);
    imageview_Main_user.setBackgroundResource(R.drawable.a);
    textView_user.setText("凤姐:一点也不好玩");
    // Message message = new Message();
    // message.what = 1;
    // handler.sendMessage(message);
    }
    });
    textView.setText("目前有" + position + "人在围观");
    return myview;
    } class GoToMediaPlayer implements OnClickListener {
    public void onClick(View v) {
    Intent intent = new Intent(context,TestMediaPlayer.class);
    context.startActivity(intent);
    }
    }
    }
      

  9.   

    其实楼上同胞们不是你们想的那么简单,每次点击button获得都是最后一个item的position,我也在纠结这个问题
      

  10.   

    listView的button主要有个焦点获取的问题,要注意
      

  11.   

    问题解决了,还是老外给的意见比较牛逼,希望可以帮到这位兄弟
    public View getView(final int position, View convertView,
                    ViewGroup parent){
           if (null == convertView)
                {
                    holder = new ViewHolder();
                    ...
                    convertView.setTag(holder);
                }
                else
                {
                    holder = (ViewHolder) convertView.getTag();
                }
                holder.position = position;
    }public static class ViewHolder {         
        private TextView text01;         
        public int position;     
    }     
    public ViewHolder getViewHolder(View v){         
           if(v.getTag() == null){            
              return getViewHolder((View)v.getParent());         
            }        
              return (ViewHolder)v.getTag();    
     }    
    public void onClick(View v) {          
            ViewHolder vh = getViewHolder(v);                 
            wantPosition = vh.position // Here I get position        
      

  12.   

    谢谢搞定了public class TestListViewActivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    //        String [] data = {"red","blue","green","yellow"};
            Intent intentSend = getIntent();
            String [] color = intentSend.getStringArrayExtra("color");
            ListView listView = (ListView)findViewById(android.R.id.list);
            listView.setAdapter(new ArrayAdapter<String>(
             this,android.R.layout.simple_list_item_single_choice,color));
    //        listView.setItemsCanFocus(true);
            OnItemClickListener listener = new OnItemClickListener() { @Override
    public void onItemClick(AdapterView<?> parent, View v, int position,
    long id) {
    Intent intent = new Intent(TestListViewActivity.this,Receive.class);
    String color = parent.getItemAtPosition(position).toString();
    intent.putExtra("color", color);
    startActivity(intent);
    }
            
            };
            listView.setOnItemClickListener(listener);
        }