如何设置点击听众对我的适配器生成一个按钮? [英] How to set the click listener on a button generated by my adapter?

查看:114
本文介绍了如何设置点击听众对我的适配器生成一个按钮?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的简单的适配器:

This is my simple adapter:

public class MainAdapter extends BaseAdapter {

    private Context mContext;

    private Integer[] mText = {
            R.string.main_team,
            R.string.main_league,
            R.string.main_economy,
            R.string.main_arena,
            R.string.main_staff,
            R.string.main_team_up
    };

    public MainAdapter(Context c) {
        mContext = c;
    }

    @Override
    public int getCount() {
        return mText.length;
    }

    @Override
    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int arg0) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Button buttonView;
        if (convertView == null) {  // if it's not recycled, initialize some attributes
            buttonView = new Button(mContext);
            buttonView.setLayoutParams(new GridView.LayoutParams(85, 45));
            //imageView.setScaleType(Button.ScaleType.CENTER_CROP);
            buttonView.setPadding(4, 4, 4, 4);
        } else {
            buttonView = (Button) convertView;
        }

        buttonView.setText(mText[position]);
        return buttonView;
    }

}

每个按钮都有,开始了自己的意图。
我想使用基于位置的开关情况,但它似乎真的傻作为解决方案。

Every button has to start its own intent. I was thinking of using a switch case based on the position but it seems really "stupid" as solution.

推荐答案

我想创建一个新的对象,例如。 ActivityLaunchButtonData 保存按钮文字和按钮的意图。

I would create a new object, eg. ActivityLaunchButtonData to store the button Text and the button Intent.

然后我会在ActivityLaunchButtonData对象的数组。

Then I would have an array of ActivityLaunchButtonData objects.

然后在 getView 方法我有类似:

ActivityLaunchButtonData activityLaunchButtonData = activityLaunchButtonDataArray[position];
buttonView.setText(activityLaunchButtonData.getText());
buttonView.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = activityLaunchButtonData.getIntent();
            startActivity(intent);
        }
    });

这篇关于如何设置点击听众对我的适配器生成一个按钮?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆