Android:通过传递参数单击侦听器方法

时间:2011-05-02 11:25:30

标签: android

我是android和Java的新手。我想创建一个带有int参数的onClick方法,所以这是我的尝试:

public void randomClick(final int randomIndex)
    {
      private OnClickListener top_listener = new OnClickListener() {
        public void onClick(View v) {
                    Intent top = new Intent(Main.this, ProjectDetail.class);
                    top.putExtra("spendino.de.ProjectDetail.position", randomIndex);
                    startActivity(top);
        }
        };
    }

但它仍然包含错误,任何人都能解决这个问题吗?

后来我想把方法设置为ImageView,它看起来或多或少会像image1.randomClick(randomIndex1);

非常感谢你。我愿意接受任何解决方案。

1 个答案:

答案 0 :(得分:8)

目前,在您的实施过程中,OnClickListener不受任何视图约束,因此不会被解雇。

您应该创建自己的(可能是内部但不是匿名的)实现OnClickListener接口的类:

public class RandomClickListener implements View.OnClickListener
{
    private final int randomIndex;

    public RandomClickListener(final int randomIndex)
    {
        this.randomIndex = randomIndex;
    }
    @Override
    public void onClick(View v)
    {
        Intent top = new Intent(Main.this, ProjectDetail.class);
        top.putExtra("spendino.de.ProjectDetail.position", randomIndex);
        startActivity(top);
    }
}
[...]
image1.setOnClickListener(new RandomClickListener(randomIndex));

这样,当您点击image1时,它会启动上面设置为ProjectDetail的{​​{1}}活动。

如果您想明确启动randomIndex活动(没有任何用户互动,例如点击),您根本不需要ProjectDetails