Activityname.this()
&之间是否有任何区别Android中的this
?
我正在尝试使用对话框中的按钮从同一活动中打开活动?我在意图中使用getApplicationContext()
。在某些手机中它可以正常工作,但在其他手机中它会强行关闭吗?
在 ActivityName.this 和这个之间,我应该使用哪个&为什么呢?
答案 0 :(得分:9)
Activityname.this()&这在Android?
这取决于你从哪里调用它。如果你在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
或AlertDialog
时相同,您需要使用ActivityName.this
This is an answer谈论Context
s的区别,但如果我能找到,我会看到更好的
修改以获得更完整性
AFAIK,getApplicationContext()
或ActivityName.this
适用于Toasts
。 example in the docs使用getApplicationContext()
。但是Toast Docs说
参数 context要使用的上下文。通常是您的Application或Activity对象。
所以有些情况可能会更好,但我总是使用Activity Context
,我想我会一直纠正这个问题。
答案 1 :(得分:1)
没有MyActivity.this
与您在活动本身时使用this
是一回事,而不是像this
引用runnable而不是上下文的runnable / p>
如果在片段中,您应始终使用this
或getActivity()
,并且永远不要使用getApplicationContext()
在此处查看您不应使用getApplicationContext()