2013-12-18 153 views
1

如何在活動開始時自動顯示對話框。 如果活動已啓動,則必須顯示對話框,您必須輸入密碼。 該密碼將與存儲在sharedpreferences中的密碼一起檢查,如果它是 ,則會顯示此活動,否則將顯示對話框中顯示密碼錯誤的消息,並且他必須再次輸入。尋找一些教程,但他們都使用一個按鈕來啓動AlertDialog,但在我的情況下,它會顯示當一個特定的活動被調用。啓動時的Android警報對話框

我該如何實現它?

+0

您可以使用其他活動。並將此活動的佈局設置爲對話框。 –

+0

如何將活動的佈局設置爲對話框? – androidBeginner

+0

相關:http://stackoverflow.com/questions/3011361/alertdialog-input-text – John

回答

2

在您的清單中添加這一點,在活動中,你想要的樣子對話框,聲明:

<activity android:theme="@android:style/Theme.Dialog"> 

以獲取更多信息和主題:http://developer.android.com/guide/topics/ui/themes.html

此外,本proggramatically您可以使用下面的代碼:

public class ShowDialogActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 

    // 
    //Log.d("DEBUG", "showing dialog!"); 

    Dialog dialog = new Dialog(this); 
    dialog.setContentView(R.layout.select_dialog_singlechoice); 
    dialog.setTitle("Your Widget Name"); 
    dialog.setCancelable(true); 
    dialog.setCanceledOnTouchOutside(true); 
    TextView text = (TextView) dialog.findViewById(R.id.text1); 
    text.setText("Message"); 

    dialog.show(); 
    // 
    dialog.setOnCancelListener(new DialogInterface.OnCancelListener() { 

    public void onCancel(DialogInterface arg0) { 
     finish(); 
    } 

    }); 
} 

} 

您可以選擇任何您希望用於對話框的佈局,並根據需要進行設計。

此外,你需要設置這個活動的聲明在清單以下:

<activity android:name=".ShowDialogActivity" 
      android:theme="@android:style/Theme.Translucent.NoTitleBar"> 
</activity> 

希望這是你一直在尋找的東西。

+0

+1你可能已經實現了這只是一個'AlertDialog',但你的解決方案仍然完成工作 – John

+0

謝謝,所以如果我當我的主要活動被調用時想要顯示這個活動或活動對話框,我只需在我的MainActivity的onCreate-Method中使用一個Intent來啓動這個活動吧?因爲我的應用程序的主要目標是如果主要活動被稱爲對話框必須顯示一個EditText字段,所以用戶可以給一個密碼...所以我只想顯示我的主要活動只有當密碼正確 – androidBeginner

+0

第一開始這項活動......如果用戶成功登錄,然後開始您的主要活動。我想沒有理由首先開始你的主要活動。 –

1
oncreate方法

edittext

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.layoutname); 

    AlertDialog.Builder alert = new AlertDialog.Builder(this); 

    alert.setTitle("Title"); 
    alert.setMessage("Message"); 

    // Set an EditText view to get user input 
    final EditText input = new EditText(this); 
    alert.setView(input); 

    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int whichButton) { 
     String value = input.getText(); 
     // Do something with value! 
     } 
    }); 

    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
     // Canceled. 
     } 
    }); 

    alert.show(); 
} 
+0

Thx這也是我的問題的另一個很好的解決方案。我怎麼能設法再次顯示相同的對話框如果例如取消按鈕被點擊(在我的情況下,如果密碼是錯誤的 - 但沒關係,只想知道我怎麼能在做某事後再次顯示相同的對話框)只想在密碼正確後顯示活動 – androidBeginner

+0

在方法中提取此警報對話框代碼,並根據需要多次運行它! @androidBeginner – Hamad

0

另一種解決方案是添加此警告對話框代碼,驗證輸入: 不顯示對話框,創建它看起來像對話的活動,創建活動,並給它一個對話框:

<activity 
    android:label="@string/app_name" 
    android:name=".DialogActivityDemoActivity" 
    android:theme="@android:style/Theme.Dialog" > 
    </activity> 

現在使此活動成爲啓動器活動,驗證用戶的輸入,然後開始您的主要活動。