我的程序用到listview,每个item又有一个button,点击button要实现不同的功能,要用到position,求具体getview()方法的操作。

解决方案 »

  1.   

    It's a simple example, you could implement your function in onClick method.
    package com.alex.button.in.listview;import android.app.ListActivity;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.Button;
    import android.widget.Toast;public class ButtonInListViewActivity extends ListActivity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            setListAdapter(new ButtonAdapter());
        }    private class ButtonAdapter extends BaseAdapter {        @Override
            public int getCount() {
                return 5;
            }        @Override
            public Object getItem(int position) {
                return null;
            }        @Override
            public long getItemId(int position) {
                return position;
            }        @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                final int pos = position;
                View view = convertView;
                if(view == null) {
                    LayoutInflater inflater = LayoutInflater.from(ButtonInListViewActivity.this);
                    view = inflater.inflate(R.layout.list_item, null);
                }
                Button btn = (Button) view.findViewById(R.id.button_in_list);
                btn.setOnClickListener(new OnClickListener() {                @Override
                    public void onClick(View v) {
                        Toast.makeText(ButtonInListViewActivity.this,
                                        "button at position " + pos + " is clicked", Toast.LENGTH_LONG).show();
                    }
                });
                return view;
            }
            
        }
    }
      

  2.   

    楼上的对的,不需要在判断position。在getview中写个监听就可以了。如果你要用到postion的话,嗯那就用楼上的,反正楼上的很正确哈哈。
      

  3.   

    对么?   貌似没有用到position啊?  我就是想问下怎么用这个position。。
      

  4.   

    @Override
                    public void onClick(View v) {
                        Toast.makeText(ButtonInListViewActivity.this,
                                        "button at position " + pos + " is clicked", Toast.LENGTH_LONG).show();
                    }把每个button的posistion 位置都打出来了,还没用到position么?这个position就是getView中的position参数。
      

  5.   

    系统在加载listview每一项(附带position的值)时,调用getview()函数,判断position的位置,编写某一行(position=xx)的button点击事件
      

  6.   


    //这是在自定义adapter里面的参数
    private List<? extends Map<String, ?>> _data;
    ......................
    ............................ public Personal_Info_Adapter(Context context,
    List<? extends Map<String, ?>> data, int resource,
    String[] from, int[] to) {

    super(context, data, resource, from, to);
    _data=data;
    // TODO Auto-generated constructor stub
    }
    ...........................

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    _data.get(position).get("your_map_key");
    }应该是这样用的,你试试