android - Toast.makeText Activity 上下文错误?

标签 android android-activity

我是 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
  1. 我不确定为什么会收到错误消息?
  2. 为什么在传递 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/

相关文章:

java - 返回按钮无意中退出应用程序

android - 主要 Activity 从堆栈中删除 - 将 uset 状态设置为离线

Android:发光触摸区域

android - 正在运行的 Activity 未从小部件显示在前面

android - 尝试在空对象引用上调用虚拟方法 'java.lang.String com.activeandroid.TableInfo.getIdName()'

android - 无法在不更改其大小的情况下定位 RelativeLayout View 的子项

android - 为 Manifest xml 中列出的 PreferenceActivity 抛出 ActivityNotFound 异常

android - 需要新任务后台中的单个 Activity

java - 保存用户选择的语言,Android

android - GET_ACCOUNTS 权限危险吗?