Basit bir evet/hayır onay iletişim kutusu görüntüleyen bir Tercihi nasıl uygularım?Bir onaylama nasıl yapılır (evet/hayır) DialogPreference?
Örneğin, bkz. Browser->Setting->Clear Cache
.
Basit bir evet/hayır onay iletişim kutusu görüntüleyen bir Tercihi nasıl uygularım?Bir onaylama nasıl yapılır (evet/hayır) DialogPreference?
Örneğin, bkz. Browser->Setting->Clear Cache
.
Bu basit bir alert dialog, Federico size bir şeyler bulabileceğiniz bir site verdi.
Bir uyarı iletişim kutusunun nasıl oluşturulabileceğinin kısa bir örneği.
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();
Bir Dialog nasıl oluşturulacağını biliyorum ama tercihleri hakkında benim q. – sh1ng
Sorunuz tercihlerle ilgili mi? Tamam. Buraya bir göz atın: http://www.kaloer.com/android-preferences – Maaalte
Bu kaynağı zaten okudum. OnClick'e abone olunan özel Tercihler oluşturabilir ve işleyebilirim, ancak bu en kolay yol mu? – sh1ng
DialogPreference'ın nasıl kullanılacağına ilişkin bir örnekle benzer bir soruyu burada yanıtladı.
kullanın Niyet Tercih size özel ekran kullanıyorsanız, tercih xml ekranı veya sizi kullanıyorsanız o zaman kod
altınaintentClearCookies = 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);
gibi olurdu Ve sonra aşağıda gibi biraz Etkinlik sınıf oluşturma , Farklı insanlar olarak farklı yaklaşımlar gibi istediğin herhangi bir yaklaşımı kullanabilirsin, bu sadece bir örnektir.
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();
}}
Daha önce de belirtildiği gibi, bunu yapmanın birçok yolu vardır. Bu, görevinizi yapabileceğiniz yollardan biridir, lütfen istediğiniz şeyi aldığınızı düşünüyorsanız, cevabı kabul edin.
Teşekkürler!Bu, iletişim servisini bir hizmetten başlattığım için ve benim durumumda iletişim kutusunu barındırmak için bir etkinliğe ihtiyaç duyduğumdan, uygulamam için ihtiyaç duyduğum neredeyse tam olarak bu. –
Buna bayılıyorum. IMHO, ayrıntılı, ancak doğru ve doğru yolu – John
Android, tam olarak istediğiniz şeyi yapan (Evet ve hayır seçenekleri olan bir onaylama iletişim kutusu) yerleşik bir YesNoPreference sınıfı ile birlikte gelir. Resmi kaynak kodu here'a bakın.
com.android.internal.preference
paketinde, bu, Android'in özel API'lerinin bir parçası olduğu ve uygulamanızdan erişemediğiniz anlamına geldiği anlamına gelir (özel API sınıfları önceden bildirilmeden değiştirilebilir), dolayısıyla Google'ın neden izin vermediği onlara erişirsiniz).
Çözüm: Sadece sağladığınız bağlantıdan resmi kaynak kodunu kopyalayıp yapıştırarak uygulamanızın paketindeki sınıfı yeniden oluşturun. Bunu denedim ve gayet iyi çalışıyor (neden olmamalı diye bir sebep yok).
Diğer tüm Tercihler gibi preferences.xml
numaranıza ekleyebilirsiniz. Örnek: şuna benzer
<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" />
:
Harika bir çözüm! Ama bu sınıfın kurucularından biriyle ilgili bir sorun var! Bir kaynak attr başvurur (com.android.internal.R.attr.yesNoPreferenceStyle)! Hangisi çözülemez? Geçici çözüm nedir? Kendi projemde bir tane mi yaratmalıyım? – reubenjohn
kullanım DialogPreferneces –