2016-08-06 29 views
0

好了,所以我有一個要求用戶親切地爲應用程式此消息彈出重新出現。他們可以選擇是或否。如果按下了,應用程序商店中的應用程序將被打開。如果否,則對話框關閉(現在)。我需要它,如果按下了「是」,即使關閉並重新打開應用程序,對話框也不會再顯示(即使用戶只按下yes,但實際上並未評估應用程序)。 這樣做的目的是,即使用戶可能已經完成了該操作,用戶也不會一直要求對應用進行評分。Android的工作室:自定義對話框,只有在沒有按下

對話框類:

public class CustomDialogClass extends Dialog implements 
    android.view.View.OnClickListener { 

public Activity c; 
public Dialog d; 
public Button yes, no; 

public CustomDialogClass(Activity a) { 
    super(a); 
    // TODO Auto-generated constructor stub 
    this.c = a; 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.custom_dialog); 
    yes = (Button) findViewById(R.id.btn_yes); 
    no = (Button) findViewById(R.id.btn_no); 
    yes.setOnClickListener(this); 
    no.setOnClickListener(this); 

} 

@Override 
public void onClick(View v) { 

    switch (v.getId()) { 
     case R.id.btn_yes: 

      Intent intent = new Intent(Intent.ACTION_VIEW); 
      intent.setData(Uri.parse("market://details?id=com.nianticlabs.pokemongo&hl=en")); 
      getContext().startActivity(intent); 

      dismiss(); 
      break; 
     case R.id.btn_no: 
      dismiss(); 
      break; 
     default: 
      break; 
    } 
    dismiss(); 
    } 
} 

(我知道這個鏈接是口袋妖怪去笑它只是試用的目的) 任何幫助,將不勝感激:)

________edit_______ 代碼,我展示對話框(當用戶輸入特定類別時發生):

public class Final1 extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.final1); 
    CustomDialogClass cdd=new CustomDialogClass(Final1.this); 
    cdd.show(); 
+0

您可以發佈您展示對話的代碼。 –

+0

我補充說。它總是顯示用戶在哪個特定的課程中。 – user6671584

+0

我添加的第二個代碼是錯誤的。這是爲了別的,對不起。我已刪除它 – user6671584

回答

0

您可能需要存儲一個關於u按下YES按鈕。在你想顯示你的對話框之前,檢查一下狀態。

既然你只需要一個布爾值,SharedPreferences建議。

+0

謝謝,但我是一個小白,所以我不太確定如何處理。我嘗試過不同的事情,但沒有工作 – user6671584

0

這將是有益的,如果我能看到你展示實際的對話框,您提供的代碼僅趕集頁面再次...但我們仍然可以用這方面的工作。

如果你想不再顯示此框給用戶,我建議使用SharedPreferences。這將使我們能夠存儲(基本上)永久變量。

例子:

SharedPreferences settings = getContext().getSharedPreferences("your-app", 0); 
if(settings.getBoolean("btn_pressed", false)){ 
//show dialog 
} 

這將確保如果我們有共享偏好布爾「BTN_PRESSED」設置爲true對話框不會打開。

要按下Yes按鈕後,設置這個布爾:

@Override 
public void onClick(View v) { 

    switch (v.getId()) { 
     case R.id.btn_yes: 
      SharedPreferences.Editor edit = c.getSharedPreferences("your-app", 0).edit(); 
      edit.putBoolean("btn_pressed", true); 
      edit.apply(); 

      Intent intent = new Intent(Intent.ACTION_VIEW); 
      intent.setData(Uri.parse("market://details?id=com.nianticlabs.pokemongo&hl=en")); 
      getContext().startActivity(intent); 

      dismiss(); 
      break; 
     case R.id.btn_no: 
      dismiss(); 
      break; 
     default: 
      break; 
    } 
    dismiss(); 
} 

共享偏好是你的應用程序要記住這種性質的永久用戶設置或事物的簡單方法。希望這可以幫助!

編輯:請注意語法修正,編輯具有資本(SharedPreferences.editor成爲SharedPreferences.Editor)

+0

但是,我得到的錯誤:無法解析編輯器,putboolean和應用。 – user6671584

+0

與getBoolean相同 – user6671584