当前位置:编程学习 > wap >>

在Activity的扩展类中如何获得Context??

public class aa extends Activity

如何在aa中取得Context类对象

菜鸟一个,希望大家指点。。。 --------------------编程问答-------------------- 和Activty中一样用就行了,Context是Activity 的基类

java.lang.Object 
   ↳ android.content.Context 
     ↳ android.content.ContextWrapper 
       ↳ android.view.ContextThemeWrapper 
         ↳ android.app.Activity 
--------------------编程问答-------------------- 那在这个aa类中怎么初始化一个Context,太菜不好意思。。。 --------------------编程问答-------------------- this不就是个Context? --------------------编程问答--------------------
引用 3 楼 aspirehouse 的回复:
this不就是个Context?

正解 --------------------编程问答-------------------- 呵呵,正确。。。。 --------------------编程问答-------------------- #24
Context mCtx;

mCtx = aa.this; --------------------编程问答-------------------- 我见好多地方要传入context类型的参数,一直不知道做什么用,谁能帮解释一下哈 --------------------编程问答-------------------- 学习中,不过确实是使用this吧,好像。 --------------------编程问答-------------------- Activity类内部this指针啊 直接用就是了  --------------------编程问答--------------------     @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Context context=getBaseContext();
    } --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- 从context派生的类,直接调用this就可以了

Known Indirect Subclasses
AbstractInputMethodService , Activity , ActivityGroup , AliasActivity , Application , ContextThemeWrapper , ExpandableListActivity , InputMethodService , IntentService , IsolatedContext , LauncherActivity , ListActivity , MockApplication , MutableContextWrapper , PreferenceActivity , RenamingDelegatingContext , Service , TabActivity  --------------------编程问答-------------------- 可以直接用This指针 --------------------编程问答-------------------- 另外我想问下的是

打比方情况如楼主声明的类aa继承Activity (public class aa extends Activity)

在有的方法中,需要传入Context类型的值,我直接使用this 是OK的。
但在另一些方法中,在需要传入Context类型的值时,直接使用this却不可以,会报出返回值类型不匹配这样的问题,而使用aa.this是OK的,谁能帮我解答下,非常感谢! --------------------编程问答--------------------
引用 14 楼 maverickgoose 的回复:
另外我想问下的是

打比方情况如楼主声明的类aa继承Activity (public class aa extends Activity)

在有的方法中,需要传入Context类型的值,我直接使用this 是OK的。
但在另一些方法中,在需要传入Context类型的值时,直接使用this却不可以,会报出返回值类型不匹配这样的问题,而使用aa.this是OK的,谁能帮我解答下,非常感谢……

你是在内部类中调用的吧 , 比如按钮监听之类的 , 因为类对象改变了 , 所以不能用this ,但是可以调用外部类的aa.this --------------------编程问答--------------------
引用 14 楼 maverickgoose 的回复:
另外我想问下的是

打比方情况如楼主声明的类aa继承Activity (public class aa extends Activity)

在有的方法中,需要传入Context类型的值,我直接使用this 是OK的。
但在另一些方法中,在需要传入Context类型的值时,直接使用this却不可以,会报出返回值类型不匹配这样的问题,而使用aa.this是OK的,谁能帮我解答下,非常感谢……

你是在内部类中使用的吧 , 比如说按钮的点击监听中 , 因为类对象改变了 , 所以不能用this , 但是可以调用外部类中的aa.this --------------------编程问答--------------------
引用 16 楼 cnjzy0106 的回复:
引用 14 楼 maverickgoose 的回复:

另外我想问下的是

打比方情况如楼主声明的类aa继承Activity (public class aa extends Activity)

在有的方法中,需要传入Context类型的值,我直接使用this 是OK的。
但在另一些方法中,在需要传入Context类型的值时,直接使用this却不可以,会报出返回值类型不匹配这样的问……


恩恩,对象变了,这个时候this就不是context了。需要用aa.this指明 --------------------编程问答-------------------- Java的基础知识了,要搞清楚this这个所指的对象···· --------------------编程问答-------------------- 可是我想在外面的一个非Activity中用到本Activity的Context,咋办? --------------------编程问答-------------------- 在Activity中 
B b = new B(this);
一个非Activity的类B
在类B中写个构造函数

public class B {
private Context mContext;
public B(XxxActivity context){
   mContext = context;
   }
}


--------------------编程问答-------------------- 楼上正解 --------------------编程问答-------------------- aa.this 可以直接写到你调用的方法里,因为aa现在本身就是一个context了,建议去看看继承和接口 --------------------编程问答-------------------- 若是在一个activity01调用另一个activity02的context 咋办? --------------------编程问答-------------------- 那就是activity02.this
或者是它的实例 --------------------编程问答--------------------
引用 20 楼 xinqiqi123 的回复:
在Activity中 
B b = new B(this);
一个非Activity的类B
在类B中写个构造函数
Java code

public class B {
private Context mContext;
public B(XxxActivity context){
   mContext = context;
   }
}


    你的context没有初始化,不会报空指针异常? --------------------编程问答-------------------- +1
引用 20 楼 xinqiqi123 的回复:
在Activity中 
B b = new B(this);
一个非Activity的类B
在类B中写个构造函数
Java code

public class B {
private Context mContext;
public B(XxxActivity context){
   mContext = context;
   }
}
--------------------编程问答-------------------- 已经初始化了啊

在Activity中 
B b = new B(this);

b.mContext.getResource();
...
一个非Activity的类B
在类B中写个构造函数
Java code

public class B {
   private Context mContext;

   public B(XxxActivity context){
     mContext = context;
   }
}
--------------------编程问答-------------------- getApplicationContext() --------------------编程问答-------------------- --------------------编程问答-------------------- 写一个类继承application,
class mApp extends Application {
   
   private static Context instance;
   //重写OnCreate()方法
   onCreate() {
      instance = this;
   }
   public static Context getInstance() {
      return instance;
   }
}
这样,在程序任何方法都能调用程序的Context对象了。。记得还要在manifast里把application的name属性改成你的这个类名~ --------------------编程问答-------------------- 可以再构造方法里面写一个。
补充:移动开发 ,  Android
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,