listview with textview和一个按钮

时间:2012-11-19 16:12:44

标签: android button android-listview

我有Listview,每行Button。如果我按Button,我希望显示Toast

我已经知道如何设置onItemClickListenerList,但我不知道如何对行中的单个Button做出反应。这是我的代码,直到现在,如果我不需要经常更改它会很棒:)

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    if(arg2 == 0){                                  
        Context context = getApplicationContext();
        String text = "Toast";
        Toast meinToast = Toast.makeText( context, text, Toast.LENGTH_SHORT);
        meinToast.show();                               
    }
}

3 个答案:

答案 0 :(得分:1)

在你的适配器中试试这个:

@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
    View row = convertView;
    YourWrapper wrapper = null;

    if (row == null)
    {
        row = inflater.inflate(R.layout.layout, parent, false);
        wrapper = new YourWrapper (row);
        row.setTag(wrapper);
    }
    else
        wrapper = (YourWrapper) row.getTag();

    wrapper.getButton().setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            // What you want
        }
    });

    return row;
}

答案 1 :(得分:0)

每个按钮都需要OnClickListener

请阅读此内容,然后您将能够创建OnClickListeners并将它们附加到按钮或其他对象。 http://developer.android.com/guide/topics/ui/ui-events.html

如果您在实施OnclickListener()尝试编写View.OnClickListener.时遇到问题,点击按钮时发生的操作会转到OnClick(){//foo}(将会是button.setOnclickListener(yourOnclickListener);自动生成)。

然后使用Button mButton = ... mButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //foo } });

设置onclicklistener

修改

{{1}}

答案 2 :(得分:0)

这是一个很好的教程,如何将ListView与自定义适配器一起使用,

http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/

因此,您可以在自定义适配器类中使用此类函数:

public View getView(int position, View convertView, ViewGroup parent) {
        View vi=convertView;
        final Button button = (Button) vi.findViewById(R.id.button_id);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
            }
        });
        return vi;
    }

如果您添加更多逻辑,则可以为列表中的每个diplayed按钮创建自定义事件。