this 是所在域的实例

比如 this 位于 MainActivity 的 onCreate() 中,那么它就是等效于 MainActivity.this 的。

如果 this 位于 MainActivity 的 onCreate() 中的一个 Button 的 setOnClickListener 的匿名类中,那么它就是指的这个匿名类。

MainActivity.this 是 MainActivity 的实例

而 MainActivity.this 则不受域的限制,不管放在哪里,它都是指 MainActivity 的 实例。

getActivity()

在有些地方,比如 Fragment,它就不能用 this,也因受 static 的原因,不能用 MainActivity.this。所以只能用 getActivity(),这个 getActivity() 是 Fragment 的方法,不是任何地方都可以用的。

返回一个和此fragment绑定的FragmentActivity或者其子类的实例。
相反,如果此fragment绑定的是一个context的话,可能会返回null。
因为getActivity()大部分都是在fragment中使用到,而fragment需要依赖于activity,
所有我们在fragment里头需要做一些动作,比如启动一个activity,就需要拿到activity对象才可以启动,而fragment对象是没有startActivity()方法的。

this 是所在域的实例比如 this 位于 MainActivity 的 onCreate() 中,那么它就是等效于 MainActivity.this 的。如果 this 位于 MainActivity 的 onCreate() 中的一个 Button 的 setOnClickListener 的匿名类中,那么它就是指的这个匿名类。MainActivity.this 是 MainActivity 的实例而 MainActivity.this 则不受域的限制,不管放在哪里,它都是指 MainAct
在extends fragment 中设置弹窗时遇到的问题 Toast.makeText的问题 Toast.makeText(login.this, "用户名或密码错误", Toast.LENGTH_SHORT).show(); 在一般的extends AppCompat Activity 中可以直接用“当前类名.class”+“要显示的文字”+Toast.LENGTH_SHORT).show()来显示没
public class Main Activity extends Base Activity { @Override protected void onCreate(Bundle savedInstanceState) { recent Fragment = Recent Fragment .newInstance(presenter); ......... @Override protected void onResume() {
解决方案:参考https://www.oschina.net/question/2307541_236502 将this改为get Activity () 使用宿主的context context上下文这一块感觉还是不太清楚云里雾里 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
本质上是没区别的.但是有时候必须要用 Main Activity .this 这样的,比如某个控件 setOnClickListener(); 在括号里面new 一个OnClickListener ,然后在onClick方法里面处理的时候必须要用 Main Activity .this 而不能用this. 表示的就是 Main Activity 这个类对象本来,这种写法一般用在内部类里,因为在外部
Main Activity .this,一般是内部类指示外部的 activity this:指当前类对象 this继承 activity activity 继承context,所以可以使用context或 activity 的地方一定可以使用this。 2.get Activity 获取 fragment 依赖的 activity 对象。但是不推荐使用,get Activity ()将返回当前Fragm...
一,Kotlin中匿名内部类,引用 Activity 的this用法为 this@ Main Activity (对应自己的 Activity ),还是上代码吧 class Main 17 Activity : AppCompat Activity () { override fun onCreate(savedInstanceState: Bundle?) { super.onCre
/Users/hayden/Desktop/myQRCodeGenerator/app/src/ main /java/com/example/myqrcodegenerator/ activity / Main Activity .java:301: 错误: 无法访问 Fragment mTencent.login(this, loginListener, params); 找不到 android .support.v4.app. Fragment 的类文件...
Main Activity 里有很多自己定义的成员变量,我用 fragment 的get Activity ()获得的只是普通的 Activity ,无法访问 Main Activity 里定义的成员变量。我想强转成 Main Activity ,语句报错: Main Activity cannot be resolved to a variable。请问应该怎么做啊? 我想到的一种方法是 fragment 构造函数中传入 Main
碎片跳转碎片,同一个住 activity 来控制,之前直接是new主 activity 获取到的对象去点里面的控制方法去切换其他的Fragmengt,然后总是在 fragment Transaction.commit()处报IllegalStateException,试了很多东西,后来想应该是用上下文直接调用该切换方法,然后运行一切正常。 本人以前一直习惯用new之后的对象去调用某个 activity 的方法,...
最近一直在学习安卓开发,但是网上的很多教程都是用eclipse开发的,我比较喜欢用 android studio 去开发,但是发现eclipse里面有很多和as是不同的 就比如最近写一个断点下载小程序,然后自己用as仿写了一个,发现怎么操作都添加不上加载条,后来甚至都代码几乎一模一样了都添加不了 后来自己研究,于是乎,把getApplicationContext换成了 Main activity .th
最近在学习 Android 开发的活动( Activity )时,总是遇到 Activity .this和this,搞不清楚这俩是什么意思并有什么区别,学习结果整理至此:Intent(Context packageContext, Class<?> cls) Create an intent for a specific component. 由Intent类的构造方法可以看出,常用的Intent构造方法接收C