1

私は多くの記事を読みましたが、すべて設定画面を設定しようとしており、編集テキストなどの設定項目をクリックすると、テキスト編集ダイアログが表示されます。今、アプリが最初に作成されたときにプロンプ​​トを表示し、入力データを設定に保存するダイアログが必要です。この場合、DialogPreference を使用できますか?

4

2 に答える 2

0

「true」の値を取得した後、設定に「firstrun」マーカーを保存することを忘れないでください。

SharedPreferences prefs = getSharedPreferences("PREFERENCE", MODE_PRIVATE);
boolean firstrun = prefs.getBoolean("firstrun", true);

if (firstrun) {
  SharedPreferences.Editor editor = prefs.edit()
  editor.putBoolean("firstrun", false);
  editor.apply();

  //Call HERE your showDialog, for example...
  showDialog(DIALOG_TEXT_ENTRY1);
}

したがって、常に「真の」値が得られるとは限りません。ところで、たとえば、「firstrun」のスペルを間違えないように、すべての定数を静的な最終プロパティとして配置することをお勧めします。

于 2012-10-23T18:16:28.140 に答える
0

はい、もちろんできます... 最初に、アクティビティの作成の onCreate で -

boolean firstrun = getSharedPreferences("PREFERENCE", MODE_PRIVATE).getBoolean("firstrun", true); 

次にチェックします-

if (firstrun) {
//Call HERE your showDialog, for example...
 showDialog(DIALOG_TEXT_ENTRY1);
} 

そして最後 - onCreateDialog をオーバーライドするだけです... -

 @Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    //main title
    case DIALOG_TEXT_ENTRY1:
         LayoutInflater factorymain = LayoutInflater.from(this);
         final View textEntryViewMain = factorymain.inflate(R.layout.main_title_dialog, null);  
.................
............ 

上記のように Layoutinflater を使用すると、任意の editText オブジェクトを使用して任意のレイアウトを表示できます....

于 2012-10-23T15:27:31.637 に答える