RT我用如下的代码来测试:package com.example.zclistview01;import java.util.ArrayList;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.*;public class MainActivity extends Activity
{
ArrayList<Button> FarrlistBtns = null;
ArrayAdapter<Button> FarrAdapter = null;

ListView FlistView01 = null; @Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// ***
FarrlistBtns = new ArrayList<Button>();

FarrAdapter = new ArrayAdapter<Button>(MainActivity.this,
    R.layout.listitem_btn, FarrlistBtns);

FlistView01 = (ListView)findViewById(R.id.listView01);
FlistView01.setAdapter(FarrAdapter); Button btnNew = new Button(MainActivity.this);
btnNew.setText("New1"); // 1、这个设置好像没用
btnNew.setOnClickListener(new Button.OnClickListener() // 2、这个设置好像没用
    {
@Override
public void onClick(View _v)
{
Toast.makeText(
getApplication(),
"DDD",
Toast.LENGTH_SHORT).show();
}
    });

FarrAdapter.add(btnNew); // btn添加到 FlistView01

Button btnDynamic = (Button)findViewById(R.id.btnDynamic);
btnDynamic.setOnClickListener(new Button.OnClickListener()
    {
@Override
public void onClick(View _v)
{
Button btnNew = new Button(MainActivity.this);
btnNew.setText("New2");
FarrAdapter.add(btnNew);
}
    });

Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new Button.OnClickListener()
    {
@Override
public void onClick(View _v)
{
Button btnGet = (Button)FlistView01.getChildAt(0);
btnGet.setOnClickListener(new Button.OnClickListener()
    {
@Override
public void onClick(View _v)
{
Toast.makeText(
getApplication(),
((Button)_v).getText(),
Toast.LENGTH_SHORT).show();
}
    });
}
    });
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}}
运行的状态如下图:我 button1 里面的代码可以设置 ListView里面的Button的点击事件,但是 FlistView01.getChildAt(0); 取得是 ListView显示出来的第一个Button,而非真正的ListView的第一个Button ...如何能将 ListView 里面的 所有Button(包括显示出来的和没显示出来的)的点击事件统统设置一遍 ???Android 菜鸟求教,请指点~~ !! 感谢 !!
任何代码、资料、链接皆可,再次感谢 !!

解决方案 »

  1.   

    主界面 ,就3个控件,上面两个 Button (btnDynamic 和 button1),下面一个 ListView (listView01):<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" >    <Button
            android:id="@+id/btnDynamic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:text="btnDynamic" />    <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toRightOf="@+id/btnDynamic"
            android:text="button1" />    <ListView
            android:id="@+id/listView01"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/btnDynamic" >    </ListView></RelativeLayout>
    R.layout.listitem_btn   :<?xml version="1.0" encoding="utf-8"?>
    <Button xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
        </Button>
      

  2.   

    在ListView的自定义Adapter 的getView方法中设置ListView里面的Button事件void getView(View convertView,x){
       convertView.setOnClickListener(new OnCLickListener(){          //
       });
    }
      

  3.   

    我菜鸟,没看明白。
    在网上也看到说“自定义Adapter 的 GetItem 然后用 ListView的getItenAtPosition” ,但是都不怎么明白...
    有没有简单的 例子 或者 链接参考下啊???
      

  4.   

    public class AccountsAdapter extends BaseAdapter
    { private List<LoginReq> list = new ArrayList<LoginReq>(); private Context context; ViewHolder holder;
    public AccountsAdapter(Context context,
    List<LoginReq> list)
    {
    this.context = context; this.list = list; } @Override
    public int getCount()
    {
    return list.size();
    } @Override
    public Object getItem(int position)
    {
    return list.get(position);
    } @Override
    public long getItemId(int position)
    {
    return position;
    } @Override
    public View getView(final int position, View convertView, ViewGroup parent)
    {
    holder = null;
    if (convertView == null)
    {
    holder = new ViewHolder();
    convertView = LayoutInflater.from(context).inflate(
    R.layout.option_item, null);
    holder.textView = (TextView) convertView
    .findViewById(R.id.item_text);
    holder.imageView = (ImageView) convertView
    .findViewById(R.id.delImage);
    holder.acountLayout = (RelativeLayout) convertView
    .findViewById(R.id.account_rl);
    convertView.setTag(holder);
    } else
    {
    holder = (ViewHolder) convertView.getTag();
    } holder.textView.setText(list.get(position).getName());
    holder.textView.setOnClickListener(new View.OnClickListener()
    { @Override
    public void onClick(View v)
    {

    }
    });
    holder.imageView.setOnClickListener(new View.OnClickListener()
    {
    @Override
    public void onClick(View v)
    {

    }
    }); return convertView;
    } private class ViewHolder
    {
    private TextView textView; private ImageView imageView; }