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 を実装していません。システムはそれ自体でアクティビティを終了する必要があると思います。:/

ありがとう。

4

1 に答える 1

0

恐れ入りますが、お電話finish()でお問い合わせくださいonDestroy()。メソッドが自動的に呼び出されるアクティビティにfinish()必要なときに実際に呼び出す必要があります。これの代わりに、必要に応じてインテントまたは他のオブジェクトを null にすることができます。finish()onDestroy()onDestroy()

于 2013-01-13T18:30:00.380 に答える