尝试获取活动上下文时出错

时间:2017-08-09 10:33:17

标签: java android android-context

由于某种原因,我无法获得我的活动背景。 注意 - 之前有效,但现在Android Studio显示错误但未停止我的应用编译并按预期运行。我已将代码进一步向下添加,但最终我认为问题出在其他地方,因为如果我尝试在新的空活动中获取活动上下文,则会出现错误。

public class TestActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
        Context context = this; // Error here
    }
}

错误是:

Incompatible types.
Required: android.content.Context
Found: com.example.android.spanish.TestActivity

此错误仅发生在此项目中。我对答案的搜索没有产生任何积极结果。事实上,我无法找到与我面临的确切问题有关的任何内容。 我试图解决这个问题:

  1. this代替MainActivity.this - 与上面相同的错误
  2. getApplicationContext() - 无法解决方法错误
  3. getActivity().getApplicationContext() - 与#2相同的错误
  4. 清洁&使用Gradle文件重建项目/同步项目
  5. 重新启动Android Studio
  6. Android Studio版本2.3.3& 3.0 - 同样的问题
  7. 我是Android开发的新手,所以如果您有解决方案,请尽可能简单地说出来。提前致谢。这是我的代码 - 我在MainActivity.this显示错误:

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            // Find the View that shows the Numbers category
            TextView numbers = (TextView) findViewById(R.id.numbers);
    
            // If View is present, set a click listener on that View
            if(numbers != null) {
                numbers.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent numbersIntent = new Intent(MainActivity.this, NumbersActivity.class);
                        startActivity(numbersIntent);
                    }
                });
            }
        }
    }
    

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,那就是将google()添加到我项目的build.gradle文件中,如下所示:

allprojects {
    repositories {
        jcenter()
        google()
    }
}

我还删除了项目并再次克隆它,以便它可以从头开始构建。不确定这是否有帮助。