【发布时间】:2014-02-02 19:05:37
【问题描述】:
我对这一切都很陌生,正如您可能从我的问题中看出的那样,在阅读了我能找到的所有内容后,我变得非常迷茫。请帮忙。
我有一个 ClassA,其中包含一个扩展视图的内部 ViewClass。从 ClassA 中,我调用 DialogCreator 类来扩展 ClassA 并显示一个对话框。从对话框列表视图中,您可以选择需要 ViewClass 重绘的项目。无论我如何发送上下文,都会出现空指针上下文错误。
ClassA 构造函数:
public class ClassA extends Basclass{ // Baseclass extends Activity
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
}
ClassA相关代码:
// Coming in from Menu for deleting or changing database tables
DialogCreator dc = new DialogCreator(context, id);
dc.onCreateDialog(title, list, mode);
protected class ViewClass extends View{
// Constructor
public ViewClass(Context context){
super(context); // Mainly crashes HERE
}
// Initializes rects, then draws via an OnDraw method
}
DialogCreator 构造函数:
public class DialogCreator extends ClassA {
DialogCreator(Context context, int dialogID){
this.context = context;
this.dialogID = dialogID;
}
}
DialogCreator 内部:
protected Dialog onCreateDialog(String title, final ArrayList list, final String mode) {
// build alertdialog listView
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// User choices, etc...
ViewClass v = new ViewClass(context);
setContentView(v);
}
}
Alternate OnCreateDialog 不会尝试设置内容视图...它会调用 ClassA 中的一个方法来尝试设置它。两者都失败了。
我尝试将活动传递给 DialogCreator,我尝试使用两个类中的 getXcontext()。我什至尝试在 ClassA 中粘贴一个从使用 ClassA 上下文的 DialogCreator 类调用的方法。显然,我在某处缺少对上下文的非常重要的理解。我尝试定义上下文的每一种方式,都会因以下 LogCat 的类似错误而崩溃:
FATAL EXCEPTION: main
java.lang.NullPointerException
at android.app.Activity.startActivityForResult(Activity.java:3351)
at android.app.Activity.startActivityForResult(Activity.java:3312)
at android.app.Activity.startActivity(Activity.java:3522)
at android.app.Activity.startActivity(Activity.java:3490)
如果能在正确的方向上取消旋转,我将不胜感激。
如果我将所有代码保存在 ClassA 中,一切都会完美运行。一旦我将重绘调用移到 DialogCreator 中,就会出现上下文错误。
【问题讨论】:
-
你能出示你的ClassA代码吗?
标签: android nullpointerexception android-context redraw