Android:使用onClickListener()时的静态引用/非静态方法;

时间:2015-06-15 09:20:14

标签: android

我想拨打onClickListener()但是有问题

Cannot make a static reference to the non-static method setOnClickListener(View.OnClickListener) from the type View

我的相关代码:

Intent intent = getIntent();
         final String editTextStr = intent.getExtras().getString("url");
        ImageView.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                  Uri uri = Uri.parse(putExtra(editTextStr));

              Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            startActivity(intent);
              }

            });
请帮助我

3 个答案:

答案 0 :(得分:1)

ImageView是一个班级。通过调用className上的setOnClickListener方法,您需要调用静态方法,但实际上它不是静态方法。

final ImageView imageView = (ImageView)findViewById(R.id.<ID in you Layout XML file>); imageView.setOnClickListener(....);

答案 1 :(得分:0)

ImageView是一个类。通过在类上调用setOnClickListener方法,您将对该类的方法进行静态引用。但是setOnClickListener方法未定义为静态。

您需要在该类的对象上设置单击侦听器。例如,

ImageView myImageView = (ImageView) findViewById(R.id.myImageView);
myImageView.setOnClickListener(...);

答案 2 :(得分:0)

您必须在活动的特定实例上调用onClickListener。

ImageView image = (ImageView) findViewById(R.id.yourref);
image.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              Uri uri = Uri.parse(putExtra(editTextStr));

              Intent intent = new Intent(Intent.ACTION_VIEW, uri);
              startActivity(intent);
          }

        });