はい/いいえの簡単な確認ダイアログを表示する設定を実装するにはどうすればよいですか?
例については、Browser->Setting->Clear Cache
を参照してください。
これは単純な アラートダイアログ です。Federicoは、あなたが物事を調べることができるサイトを提供しました。
アラートダイアログを作成する方法の簡単な例を次に示します。
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();
Androidには、必要なことを正確に実行する組み込みYesNoPreferenceクラスがあります(yesオプションとnoオプションの確認ダイアログ)。公式のソースコードを参照してください こちら 。
残念ながら、それはcom.Android.internal.preference
パッケージにあり、AndroidのプライベートAPIの一部であり、アプリケーションからアクセスできないことを意味します(プライベートAPIクラスは予告なく変更される場合があるため、Googleが許可しない理由あなたはそれらにアクセスします)。
解決策:提供したリンクから公式のソースコードをコピー/貼り付けて、アプリケーションのパッケージにクラスを再作成するだけです。私はこれを試してみましたが、うまく機能します(そうすべきでない理由はありません)。
その後、他の設定と同じようにpreferences.xml
に追加できます。例:
<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" />
次のようになります:
設定XML画面を使用している場合、またはカスタム画面を使用している場合は、インテント設定を使用して、コードは次のようになります
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);
そして、以下のようなアクティビティクラスを作成します。異なるアプローチとして異なる人々がいるので、あなたが好む任意のアプローチを使用できるのは単なる例です。
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();
}}
前に言ったように、これを行う方法はいくつかあります。これはあなたがあなたの仕事をすることができる方法の1つです、あなたがそれが欲しいものを手に入れたと感じるならば、答えを受け入れてください。
ここで、DialogPreferenceの使用方法の例で同様の質問に回答しました。