我是新来的,所以在这里还有一些非常模糊的东西 &安培;我对以下代码感到有些困惑。
public class SmsActivity extends ListActivity {
private String[] mSmsReceiver;
public SmsActivity(){
mSmsReceiver = new SmsReceived();
setListAdapter(new ArrayAdapter<String>(this, R.layout.main,mSmsReceiver));
第1行:超类SmsActivity
下的班级ListActivity
第2行:我引入一个字符串数组术语名称:mSmReceiver
第3行:调用方法SmsActivity()
第4行:在SmsActivity
方法内,mSmsReceiver
(一个字符串数组)调用方法SmsReceived
第5行:ArrayAdapter
(以字符串形式,加载了mSmsReceiver的信息)加载到setListAdapter
我的问题:
this
是指什么?
(我查看了互联网和书籍,它总是说上下文。但我完全不知道上下文究竟意味着什么,任何人都可以在这里解释什么是上下文?)完整代码:
import...
....
public class SmsActivity extends ListActivity {
private String[] mSmsReceiver;
public SmsActivity(){
mSmsReceiver = new SmsReceived();
setListAdapter(new ArrayAdapter<String>(this, R.layout.main,mSmsReceiver));
ListView listView = getListView();
listView.setTextFilterEnabled(true);
//---method is call when listitem is clicked---
listView.setOnItemClickListener(new OnItemClickListener() {edit later});
}
private class SmsReceived extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
{..... }
}
}
答案 0 :(得分:2)
基本上这是一个名为SmsActivity
的类的定义。
第1行和第2行是对的。更确切地说,mSmReceiver
是类SmsActivity
的私有数字。
第3行应该是我不确定的构造函数,因为我不是Android开发人员,我听说它在onCreate
中使用Activity
。但无论如何,calling the method
只是定义它。构造函数将用于初始化类。
第4行mSmsReceiver(a string array) call method SmsReceived
。不是这样,它将是initialize mSmsReceiver with an object, which is an instance of class SmsReceived
。
第5行this
指的是班级SmsActivity
。在课程this
中几乎总是引用它所在的类。这提供了一个上下文,以便您可以使用this.someMumber
或this.someFunction
。
答案 1 :(得分:1)
Java中的关键字“this”基本上是对其所在类的引用。例如:
public class MyClass {
MyClass myVar = this;
}
这会将MyClass类的一个实例放在该变量中。它为您提供了您所在类的实例。如果您通过方法调用它:
public void myMethod() {
MyClass m = this;
}
这将为您提供调用myMethod的任何类的实例。将其作为MyClass的实例或MyClass的子类的实例。用于调用方法的任何实例都将放在m变量中。
因此,当您在Activity中调用“this”时,它会为您提供该Activity的实例。