从onclicklistener android访问变量

时间:2013-10-16 12:22:37

标签: java android onclick scope onclicklistener

问题是如何在onclick方法中使用变量,例如:

String number = "555 12345";

     callbutton.setOnClickListener(new onClickListener(){

            @Override
            public void onClick(View view) {

                Intent phoneCallIntent = new Intent(Intent.ACTION_CALL);
                phoneCallIntent.setData(Uri.parse(number));
                startActivity(phoneCallIntent);

            }
    });

我尝试了这个解决方案但失败了。为onclicklistener制作自定义类。

String number = "555 12345";

bt.setOnClickListener(new CallButtonClickListener(number){});


public class CallButtonClickListener implements OnClickListener
{


  String num;
  public CallButtonClickListener(String number) {
       this.num = number;
  }

  @Override
  public void onClick(View v)
  {
        Intent phoneCallIntent = new Intent(Intent.ACTION_CALL);
        phoneCallIntent.setData(Uri.parse(num));
        startActivity(phoneCallIntent);
  }

};

}

如何将字符串传递给onclick?我无法在onclick中定义字符串,因为我必须多次使用它。

2 个答案:

答案 0 :(得分:2)

将其设为final

final String number = "555 12345";

第二种解决方案似乎也正常,因为你传递的是参考文献的副本。这有什么不妥?

答案 1 :(得分:0)

使用final变量或在onCreate()方法

之外声明它们