我正在使用的 Android 程序有问题。下面的方法在 MyActivity 中。MyActivity 有一个扩展 AsyncTask 的内部类 InnerClass。在 InnerClass 的 doInBackground 方法中,我搜索了一个数据库。该搜索的结果被传递给这个方法 processSearchResult。除了最后一行抛出 NullPointerException 之外,一切正常。我在创建按钮时尝试使用 getApplicationContext() 代替它,但它仍然抛出异常。我对其进行了调试,发现问题出在 android.content.ContextWrapper 类中。在getApplicationContext() 方法中是调用mBase.getApplicationContext。问题是变量 mBase 为空。使用 this 关键字时,仍然会调用此方法,并且 mBase 仍然为空。谁能告诉我为什么 mBase 为空?或者如果 mBase 为空实际上是正常的?
public void processSearchResult(ResultSet result) {
try {
int x = 1;
while (result.next()) {
String name = result.getString(1);
String ing = result.getString(2);
String ins = result.getString(3);
String notes = result.getString(4);
String type = result.getString(5);
String course = result.getString(6);
Recipe r = new Recipe(name, ing, ins, notes, type, course);
recipeList.add(r);
Button button = new Button(this);