Android中的Activityname.this()
&有什么区别吗?this
我正在尝试使用对话框中的按钮从同一活动中打开一个活动?我getApplicationContext()
有意使用。在某些手机中它可以工作,但在其他手机中它会强制关闭?
在ActivityName.this和this之间,我应该使用哪个以及为什么?
Android中的Activityname.this()
&有什么区别吗?this
我正在尝试使用对话框中的按钮从同一活动中打开一个活动?我getApplicationContext()
有意使用。在某些手机中它可以工作,但在其他手机中它会强制关闭?
在ActivityName.this和this之间,我应该使用哪个以及为什么?
Android 中的 Activityname.this() 和 this 之间有什么区别吗?
这取决于您从哪里调用它。如果您在 中Activity
,而不是在侦听器或内部类中,onCreate
那么就没有。他们都指的是Activity context
.
如果你在里面说,onClickListener
那么是的。this
指的是listener
你需要使用的ActivityName.this
或者类似的东西
someButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Intent i = (v.getContext(), NextActivity.class); use the button context which will be the same as the activity context
startActivity(i);
}
});
Dialog
这与使用or时相同AlertDialog
,您将要使用ActivityName.this
这是一个关于Context
s 差异的答案,但如果我能找到一个更好的答案,我会看看
编辑以获得更多完整性
AFAIK,getApplicationContext()
或者ActivityName.this
适用于Toasts
. 文档中的示例使用getApplicationContext()
. 但是Toast Docs说
参数 context 要使用的上下文。通常是您的 Application 或 Activity 对象。
因此,在某些情况下可能会更好,但我一直在使用Activity Context
,我想我会一直使用,直到我对此进行纠正。
noMyActivity.this
与仅在活动本身中使用时使用的东西相同,this
而不是像 runnablethis
那样引用可运行对象而不是上下文的东西
你应该总是使用this
or getActivity()
if 在一个片段中并且永远不要使用getApplicationContext()
在这里检查你为什么不应该使用getApplicationContext()