Respostas:
Essa é uma caixa de diálogo de alerta simples , Federico deu a você um site onde você pode pesquisar coisas.
Aqui está um pequeno exemplo de como um diálogo de alerta pode ser criado.
new AlertDialog.Builder(this)
.setTitle("Title")
.setMessage("Do you really want to whatever?")
.setIcon(android.R.drawable.ic_dialog_alert)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Toast.makeText(MainActivity.this, "Yaay", Toast.LENGTH_SHORT).show();
}})
.setNegativeButton(android.R.string.no, null).show();
O Android vem com uma classe YesNoPreference integrada que faz exatamente o que você deseja (uma caixa de diálogo de confirmação com opções sim e não). Veja o código-fonte oficial aqui .
Infelizmente, ele está no com.android.internal.preference
pacote, o que significa que é parte das APIs privadas do Android e você não pode acessá-lo de seu aplicativo (classes de API privadas estão sujeitas a alterações sem aviso prévio, daí o motivo pelo qual o Google não permite seu acesso).
Solução: basta recriar a classe no pacote do seu aplicativo copiando / colando o código-fonte oficial do link que forneci. Eu tentei isso e funciona bem (não há razão para que não deva).
Você pode então adicioná-lo à sua preferences.xml
preferência como qualquer outra. Exemplo:
<com.example.myapp.YesNoPreference
android:dialogMessage="Are you sure you want to revert all settings to their default values?"
android:key="com.example.myapp.pref_reset_settings_key"
android:summary="Revert all settings to their default values."
android:title="Reset Settings" />
Que se parece com isto:
Use a preferência de intenção se estiver usando uma tela xml de preferência ou se estiver usando uma tela personalizada, o código seria como abaixo
intentClearCookies = getPreferenceManager().createPreferenceScreen(this);
Intent clearcookies = new Intent(PopupPostPref.this, ClearCookies.class);
intentClearCookies.setIntent(clearcookies);
intentClearCookies.setTitle(R.string.ClearCookies);
intentClearCookies.setEnabled(true);
launchPrefCat.addPreference(intentClearCookies);
E, em seguida, crie a classe de atividade mais ou menos como a seguir, Como pessoas diferentes e abordagens diferentes, você pode usar qualquer abordagem que desejar, este é apenas um exemplo.
public class ClearCookies extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
showDialog();
}
/**
* @throws NotFoundException
*/
private void showDialog() throws NotFoundException {
new AlertDialog.Builder(this)
.setTitle(getResources().getString(R.string.ClearCookies))
.setMessage(
getResources().getString(R.string.ClearCookieQuestion))
.setIcon(
getResources().getDrawable(
android.R.drawable.ic_dialog_alert))
.setPositiveButton(
getResources().getString(R.string.PostiveYesButton),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
//Do Something Here
}
})
.setNegativeButton(
getResources().getString(R.string.NegativeNoButton),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
//Do Something Here
}
}).show();
}}
Como dito antes, existem várias maneiras de fazer isso. esta é uma das maneiras de realizar sua tarefa. Aceite a resposta se achar que conseguiu o que queria.