如果声明无法被识别?

时间:2016-06-02 18:45:55

标签: android

我的应用开发代码中的if语句存在问题

if (Intent.resolveActivity(getPackageManager())!=null)
        {
            startActivity(intent);
        }

错误出现在resolveActivity部分,错误如下:

  

非静态方法
  ' resolveActivity(android.content.pm.PackageManager)'无法从静态上下文中引用。

这是什么意思,我该如何解决?

感谢。

2 个答案:

答案 0 :(得分:1)

功能" resolveActivity"是非静态的。您需要一个Intent-Instance来调用该函数。 如果您在活动中,可以使用

if (getIntent().resolveActivity(getPackageManager())!=null)
{
    startActivity(intent);
}

答案 1 :(得分:0)

只需声明Intent,而不是直接从类中引用它。 像:

Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);

然后

if (myIntent.resolveActivity(getPackageManager())!=null)
    {
        startActivity(myIntent);
    }

基本上,你试图从库类中获取方法,你可以获得大多数只有常量,否则(在你的情况下 - 方法)你需要一个你挂起的对象它 - 所谓的动态参考。

希望有所帮助!