我是 Android、Eclipse 和部分 Java 的新手(十年前我读过一本 Java 书但从未使用过它。)我正在学习本教程:http://ofps.oreilly.com/titles/9781449390501/Android_User_Interface.html
我有这个代码:
public class Status extends Activity implements OnClickListener, TextWatcher {
// ...
class PostToTwitter extends AsyncTask<String, Integer, String> {
// ...
protected void onPostExecute(String result) {
Toast.makeText(Status.this, result, Toast.LENGTH_LONG).show();
}
}
}
我在 Toast.makeText 行旁边得到这些错误:
- The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (AsyncTask.Status, String, int)
- No enclosing instance of the type AsyncTask.Status is accessible in scope
- 我不确定为什么会收到错误消息?
- 为什么在传递 Status Activity 上下文时提到 AsyncTask?
我想我要扇自己耳光并说 Doh!后来,但我现在对它视而不见:)
最佳答案
你的问题是Status
是公众enum of AsyncTask .所以 java 不会将您的 Activity 作为上下文。尝试在您的 AsyncTask
中保存您的上下文实例。
在这里试试这段代码:
public class Status extends Activity implements OnClickListener, TextWatcher {
private Context context;
public void onCreate(...) {
context=this;
//...
}
// ...
class PostToTwitter extends AsyncTask<String, Integer, String> {
// ...
protected void onPostExecute(String result) {
Toast.makeText(context, result, Toast.LENGTH_LONG).show();
}
}
}
关于android - Toast.makeText Activity 上下文错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14500653/