2012-02-18 10 views
0

"詳細"と表示されたリストビューがあり、ユーザーがアイテムの1つをクリックすると、その特定の "詳細"の位置が取得され、特定の変数に動的データをロードした編集画面。新しいアクティビティを開始すると、onPauseメソッドがトリガーされます

詳細アクティビティを開始すると、詳細アクティビティとメインメニューアクティビティの両方が開始されたことがlogcatによって通知され、ユーザーがメインメニューに移動します。これは明らかに誰かを幸せにしてくれるものではなく、誰が私に何らかの援助を提供できるのかどうか知りたいのですが、なぜこれが起こっているのですか?

コード:

DetailsButton:

removeLi.setOnItemClickListener(new OnItemClickListener() { 

      public void onItemClick(AdapterView<?> aV, View v, int pos, 
        long arg3) { 
       // TODO Auto-generated method stub 
       information.open(); 
       information.delete(pos + 1); 
       information.close(); 

       rowAdapter.notifyDataSetChanged(); 
       whenAdapter.notifyDataSetChanged(); 
       postedAdapter.notifyDataSetChanged(); 
       detailsAdapter.notifyDataSetChanged(); 
       editAdapter.notifyDataSetChanged(); 
       removeAdapter.notifyDataSetChanged(); 

       Dialog sucDeleted = new Dialog(ManageAppointment.this); 
       sucDeleted.setTitle("Sucesfully deleted"); 
       TextView tvDintWorked = new TextView(ManageAppointment.this); 
       tvDintWorked.setText("The appointment at position:" + pos 
         + " was sucesfully deleted"); 
       sucDeleted.setContentView(tvDintWorked); 
       sucDeleted.show(); 

      } 
     }); 

onPauseメソッド:

@Override 
protected void onPause() { // TODO Auto-generated method stub 
    super.onPause(); 
    Intent main = new Intent("com.DCWebMakers.Vairon.MAINMENU"); 
    startActivity(main); 
} 

感謝。

答えて

3

onPause()は、別のアクティビティが開始され、それが置き換えられた場合は、常にhereのように、すべてのアクティビティで常に呼び出されます。特定のアクティビティを開始するために戻るボタンの動作をオーバーライドする場合は、onPause()にコードを追加するのではなく、onBackPressed()メソッドをオーバーライドすることを検討してください。

+0

ありがとう、これは完全に働いた – Vairon

0

これは設計通りです。 onPause()メソッドは、の別のアクティビティが現在のアクティビティをカバーするたびに実行されます(自分のアクティビティであっても)。 activity documentationを参照してください。本当の質問は、なぜあなたはonPause()の主な活動を始めていますか?

+0

ユーザーが戻るボタンを押した場合に使用します。しかし今、あなたはそれに言及し、私は正しいことのためにバックボタンが作られたことをそれのいくつかの感覚を作っている? – Vairon

関連する問題