代码之家  ›  专栏  ›  技术社区  ›  Just The Highlights Konstantin Burov

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

  •  -1
  • Just The Highlights Konstantin Burov  · 技术社区  · 7 年前

    由于某种原因,我无法了解我活动的背景。 注释-

    package com.example.myapp
    
    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.myapp.TestActivity
    

    我试图解决这个问题:

    1. this 而不是 MainActivity.this
    2. getApplicationContext() -无法解决方法错误
    3. getActivity().getApplicationContext() -与#2相同的错误
    4. 重新启动Android Studio
    5. Android Studio版本2.3.3&3.0-同一问题

    我是Android开发新手,所以如果你有一个解决方案给我,请尽可能简单地表达出来。提前谢谢。这是我的代码-我在 onClick 它说的方法 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 回复  |  直到 4 年前
        1
  •  1
  •   Just The Highlights Konstantin Burov    7 年前

    我找到了一个解决方案,那就是添加 google() 到我的项目的构建。gradle文件如下:

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