【问题标题】:importance of Context in android [duplicate]上下文在android中的重要性[重复]
【发布时间】:2012-08-09 17:50:32
【问题描述】:

可能重复:
What is Context in Android?

我在应用程序/对象的 android 当前状态中读取上下文

   Intent intent=new Intent(this,SecondaryActivity.class);
   startActivity(intent);

我们可以使用getApplicationContext() 代替this 但是在一个

@Override
public void onClick(View view) {

Toast.makeText(getApplicationContext(), "Hai",Toast.LENGTH_LONG).show();
}

我们不能在这里使用this 我的意思是getApplicationContext() 为什么这也指当前对象,因此我对thiscontext 感到困惑帮助我研究这个,参考分享我..

【问题讨论】:

  • 我已经读过那个,但没有得到那个qn的原因

标签: android


【解决方案1】:

当你将this 传递给方法时,你的意思是this 引用是Context 的一个实例,所以如果你在Activity 中你可以传递这个而不是Context。但是当你在匿名课堂上时:

button.setOnClickListener(new OnClickListener(){
     @Override
     public void onClick(){
         //here this is a reference to OnClickListener instance
     }

要在onClick方法中传递Context,你可以写

MyActivity.this

【讨论】:

  • MyActivity 类型的封闭实例在范围内不可访问:MyActivity.this
  • MyActivity 应替换为您的活动类名称。
  • 哦,我忘了,你说得对,谢谢
【解决方案2】:

Activity 是上下文的子类,因此所有Activity 对象也是Context

android.content.Context
   ↳    android.content.ContextWrapper
       ↳    android.view.ContextThemeWrapper
           ↳    android.app.Activity

因此,如果您不能使用this,则意味着this 不是Context 类或其子类的实例。

【讨论】:

    猜你喜欢
    • 2011-04-07
    • 2013-06-08
    • 1970-01-01
    • 2012-12-17
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    相关资源
    最近更新 更多