عرض الإعدادات باستخدام" الإعدادات " في قائمة النقاط الثلاثية

StackOverflow https://stackoverflow.com//questions/23047221

  •  21-12-2019
  •  | 
  •  

سؤال

أنا إعداد بعض الإعدادات الأساسية لتطبيق الروبوت بلدي ، وأواجه بعض المشاكل.بادئ ذي بدء ، لم أتمكن من معرفة كيفية استخدام قائمة النقاط الثلاثية في أعلى يمين شريط الإجراءات لفتح الإعدادات.لذلك أنا خلقت مؤقتا الزر الذي يدعو تشوسيستينغز:

a button

    public void chooseSettings(View view) {
    getFragmentManager().beginTransaction().replace(android.R.id.content, new PreferenceActivity()).commit();
}

هذا هو رمز لفئة بريفيرينسكاكتيفيتي:

public class PreferenceActivity extends PreferenceFragment {
@Override
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Load the preferences from an XML resource
    addPreferencesFromResource(R.xml.preferences);
 }
}

أي نوع من الأعمال.ينتج عن ذلك شاشتي تبدو هكذا:.

this

هل كانت مفيدة؟

المحلول

الإعدادات في قائمة الفائض

من أجل استخدام الإعدادات في القائمة تجاوز ، تحتاج إلى تجاوز أونوبتيونسيتمسيلكتد الطريقة ، إن لم يكن بالفعل والتعامل مع المعرف الصحيح.

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        // Code to show settings.
        return true;
    }
    return super.onOptionsItemSelected(item);
}

استبدال R.id.action_settings مع معرف عنصر القائمة الخاصة بك.

عرض بريفيرينسفراغمنت

كما أظهرت في صورتك ، فإن شاشة التفضيلات الخاصة بك تتداخل مع التخطيط الحالي.

لاحظ أنه يمكنك فقط استبدال جزء أضفته ديناميكيا.

أنا التخمين شمل لشاشتك التي تحتوي على أزرار تخمين البلد وتخمين الأعلام تم تضخيمها ولم تتم إضافتها ديناميكيا كجزء لذلك عن طريق إضافة جزء تفضيل فإنه ببساطة يتم عرضها متداخلة.

الحل

طريقة واحدة يمكنك الذهاب حول هذا هو عن طريق إنشاء وبدء نشاط جديد والتي سيتم تحميل جزء تفضيلاتك.

على سبيل المثال ، إذا قمت بإنشاء فئة تسمى SettingsActivity والتي سيتم تحميل التفضيلات (لا تنسى أن تضيف إلى أندرويدمانيفست):

public class SettingsActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getFragmentManager().beginTransaction().replace(android.R.id.content, new PreferenceActivity()).commit();
    }
}

ثم في الخاص بك onOptionsItemSelected, ، يمكنك بدء نشاط الإعدادات.

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        Intent intent = new Intent(this, SettingsActivity.class);
        startActivity(intent);
        return true;
    }
    return super.onOptionsItemSelected(item);
}

خلاف ذلك ، ستحتاج إلى تغيير التخطيط الرئيسي لاستخدام شيء مثل تخطيط الإطار بحيث يمكنك إضافة/إزالة/استبدال الأجزاء بشكل صحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top