而 MainActivity.this 则不受域的限制,不管放在哪里,它都是指 MainActivity 的 实例。
在有些地方,比如 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