2014-02-20 36 views
1

我在製作校園地圖應用程序。所以我有這個Dialog,這是一個學院的部門名單,例如EnggDeptDialog.class ...如果我從列表中打開一個,例如土木工程部門/ CeFacultyListView.class,它將承載該部門的系列列表,然後當我點擊後退按鈕時,我希望應用程序返回到前一個活動,即EnggDeptDialog.class。明白了我的觀點?Android:返回上一個對話框活動

我似乎沒有從這裏找到答案,所以我問這個。這裏有我嘗試過的代碼,但它並沒有真正奏效。

下面是我使用的代碼..

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    if (item.getItemId() == R.id.menu_legal) { 
     startActivity(new Intent(this, EnggDean.class)); 
     return true; 
    } 
    if (item.getItemId() == R.id.back){ 
     onBackPressed(); 
    } 
    return super.onOptionsItemSelected(item); 
} 

public void onBackPressed() {  
    Intent intent = new Intent(); 
    intent.setAction(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    startActivity(intent); 
} 

但每次我拍了拍後退按鈕時,它從程序熄滅。

這是我的對話活動代碼:

public class EnggDeptDialog extends DialogFragment{ 

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setTitle(R.string.opt) 
      .setItems(R.array.enggdept_options, new DialogInterface.OnClickListener(){ 
       public void onClick(DialogInterface dialog, int which) { 
        switch(which){ 
        case 0: 
         Intent aefaculty = new Intent("com.android.cmumap.AFLV"); 
         startActivity(aefaculty); 
         break; 
        case 1: 
         Intent cefaculty = new Intent("com.android.cmumap.CFLV"); 
         startActivity(cefaculty); 
         break; 
        case 2: 
         Intent eefaculty = new Intent("com.android.cmumap.EFLV"); 
         startActivity(eefaculty); 
         break; 
        case 3: 
         Intent itfaculty = new Intent("com.android.cmumap.IFLV"); 
         startActivity(itfaculty); 
         break; 
        case 4: 
         Intent mefaculty = new Intent("com.android.cmumap.MFLV"); 
         startActivity(mefaculty); 
         break; 
        } 
       } 
}); 
return builder.create(); 
} 
} 

這是我所說的對話活動

EnggiDeptDialog deptdialog; 
deptdialog = new EnggDeptDialog(); 
deptdialog.show(getFragmentManager(), "Departments"); 
+0

你試過了什麼?張貼一些代碼,否則這裏沒有人能夠/願意幫助你。 – Merlevede

+0

@Merlevede我編輯了上述問題。 – myooomyoo

回答

0

你需要做的只是刪除public void onBackPressed()功能是什麼。

活動會自動添加到「堆棧」,並且每次用戶點擊設備上的「返回」按鈕時,Android會彈出堆棧中最頂層的活動。這是默認行爲。

所以沒有必要手動執行此操作。

+0

但是,當用戶點擊並且android彈出對話框活動時,你不覺得這是另一個故事嗎?因爲有一次,我點擊後退按鈕,但隨後彈出到主標記。對話框活動沒有彈出。 – myooomyoo

+0

@Banananadss對不起,我沒跟着你。什麼是「主標記」? – Merlevede

+0

這是一個地圖應用程序..我指出一個地圖標記..當我點擊後退按鈕,它跳過對話框活動並返回到地圖.. – myooomyoo