0
我有一些项目列表&每当我点击其中的任何一个时,我会相应地转到一个新的意图。但是当我尝试再次返回列表时,有些项目会给出正确的结果,而其他项目则会给出错误。完成活动时的例外情况
我已经尝试调用onDestroy & onStop方法中的finish(),以提供错误的意图。我也尝试过注释掉这两种方法,因为默认情况下它应该会脱离堆栈。但logcat的显示
01-12 23:04:55.050: E/AndroidRuntime(14445): java.lang.RuntimeException: Unable to stop activity {com.balance.start/com.balance.start.GFX}: java.lang.NullPointerException
01-12 23:04:55.050: E/AndroidRuntime(14445): at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3613)
01-12 23:04:55.050: E/AndroidRuntime(14445): at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3679)
01-12 23:04:55.050: E/AndroidRuntime(14445): at android.app.ActivityThread.access$2900(ActivityThread.java:126)
01-12 23:04:55.050: E/AndroidRuntime(14445): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071)
01-12 23:04:55.050: E/AndroidRuntime(14445): at android.os.Handler.dispatchMessage(Handler.java:99)
01-12 23:04:55.050: E/AndroidRuntime(14445): at android.os.Looper.loop(Looper.java:123)
01-12 23:04:55.050: E/AndroidRuntime(14445): at android.app.ActivityThread.main(ActivityThread.java:4633)
01-12 23:04:55.050: E/AndroidRuntime(14445): at java.lang.reflect.Method.invokeNative(Native Method)
01-12 23:04:55.050: E/AndroidRuntime(14445): at java.lang.reflect.Method.invoke(Method.java:521)
01-12 23:04:55.050: E/AndroidRuntime(14445): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
01-12 23:04:55.050: E/AndroidRuntime(14445): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
01-12 23:04:55.050: E/AndroidRuntime(14445): at dalvik.system.NativeStart.main(Native Method)
01-12 23:04:55.050: E/AndroidRuntime(14445): Caused by: java.lang.NullPointerException
01-12 23:04:55.050: E/AndroidRuntime(14445): at android.app.Activity.performStop(Activity.java:3869)
01-12 23:04:55.050: E/AndroidRuntime(14445): at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3608)
这是我的代码..
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
{
super.onCreate(savedInstanceState);
setContentView(R.layout.report_ledger);
...
}
class MyAdapter extends CursorAdapter {
public MyAdapter(Context context, Cursor c, boolean autoRequery) {
super(context, c, autoRequery);
// TODO Auto-generated constructor stub
}
@Override
public void bindView(View view, Context ctxt, Cursor c) {
// TODO Auto-generated method stub
TextView tv1 = (TextView) view.findViewById(R.id.tvAB1);
TextView tv2 = (TextView) view.findViewById(R.id.tvAB2);
TextView tv3 = (TextView) view.findViewById(R.id.tvAB3);
TextView tv4 = (TextView) view.findViewById(R.id.tvAB4);
TextView tv5 = (TextView) view.findViewById(R.id.tvAB5);
tv1.setText(c.getString(2));
tv2.setText("" + c.getDouble(3));
tv3.setText("" + c.getDouble(4));
tv4.setText("" + (c.getDouble(4) - c.getDouble(3)));
tv5.setText((c.getDouble(3) > c.getDouble(4) ? "CR." : "DR."));
}
@Override
public View newView(Context ctxt, Cursor c, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater inflater = getLayoutInflater();
return inflater.inflate(
R.layout.text_view_for_list_view_account_balance, parent,
false);
}
}
我还没有实现onClickListener的后退按钮,因为我并不需要做思考。我认为系统应该自己完成活动。 :/
谢谢。
向我们展示这些方法的代码。 –
Raghav你在问哪个代码? 这是一个非常冗长的代码。所以..我把代码可能是错误的原因。 –
你为什么在'onDestroy()'中调用'finish()'?当系统完成你的活动时调用onDestroy()。没有任何目的再次调用finish(),实际上可能是空指针的来源。 – shanet