2016-08-06 7 views
0

Итак, у меня появилось это всплывающее сообщение, которое просит пользователя любезно оценить приложение. Они могут выбрать «Да» или «Нет». Если «Да» нажата, приложение в магазине приложений будет открыто. Если нет, диалоговое окно закрывается (пока). Я хочу, чтобы при нажатии Да, диалоговое окно больше не будет отображаться (даже если пользователь только нажимает «Да», но на самом деле не оценивает приложение.) Даже после закрытия и повторного открытия приложения. Целью этого является то, что пользователь не получает запрос на оценку приложения, даже если он уже это сделал.Android Studio: пользовательский диалог снова возникает, если нет.

Dialog Класс:

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

Возможно, вам потребуется сохранить состояние о том, ser нажатый YES кнопка. И прежде чем вы хотите показать свое диалоговое окно, проверьте состояние.

Так как вам нужно только логическое значение, SharedPreferences рекомендуется.

+0

Спасибо, но я вроде как нуб, поэтому я не уверен, как подойти к этому. Я пробовал разные вещи, но не работал – user6671584

0

Было бы полезно, если бы я мог видеть, где вы показать фактическое диалоговое окно, код, который вы обеспечиваете, что идет только на страницу рынка снова ... но мы все еще можем работать с этим.

Если вы хотите, чтобы никогда не показывать это окно для пользователя еще раз, я рекомендую использовать SharedPreferences. Это позволит нам хранить (в основном) постоянные переменные.

Пример:

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

Это удостоверится диалоговое окно не открывается, если мы имеем Shared Preferences логическое «btn_pressed» установлен верно.

Чтобы установить это логическое значение после того, как кнопка нажата кнопка Да:

@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(); 
} 

Shared Preferences простой способ для вашего приложения помнить постоянные пользовательские настройки или вещи такого рода. Надеюсь это поможет!

EDIT: Пожалуйста, обратите внимание, коррекцию синтаксиса, редактор имеет капитал (SharedPreferences.editor становится SharedPreferences.Editor)

+0

Спасибо, однако, я получаю ошибки: не могу разрешить редактор, putboolean и применить. – user6671584

+0

с getBoolean – user6671584