studio programacion para móviles libros gratis español edición desarrollo desarrollar curso con aprende aplicaciones android android-settings

para - manual programacion android español pdf



La actividad de configuración no se abre en la tableta (3)

¡Encontré la respuesta!

Todo lo que tenía que hacer después de la Configuración del desarrollador de Android era que si estaba desarrollando para Android 3.0 (nivel de API 11) y superior, necesitaba usar Fragmentos de preferencia, que es otra clase que extiende PreferenceFragment.

Entonces el código estaría usando estos parámetros:

public static class SettingsFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.preferences); } ... }

y la antigua SettingsActivity ahora debe extender la Actividad en lugar de PreferenceActivity, de la siguiente manera:

public class SettingsActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Display the fragment as the main content. getFragmentManager().beginTransaction() .replace(android.R.id.content, new SettingsFragment()) .commit(); } }

He configurado correctamente el pref_general, los valores para él y el código para ejecutar la intención:

@Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { Intent intecao = new Intent(characterList.this, SettingsActivity.class); startActivity(intecao); return true; } return super.onOptionsItemSelected(item); }

Entonces, si presiono la configuración en la ventana emergente de opciones, se abrirá correctamente en mi teléfono / tableta de 7 ", pero para tabletas más grandes como 9" o más, aparecerá una ventana emergente en blanco sin nada escrito en ella, como como esto:

¿Cómo puedo solucionar este problema? ¿Cuál es el problema que hace que esto suceda?

--- EDITAR ---

Aquí está mi pref_general:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="Made by Megafuji and Kintups"/> <ListPreference android:key="console1" android:title="Console" android:summary="Select your console" android:defaultValue="1" android:entries="@array/pref_example_list_titles" android:entryValues="@array/pref_example_list_values" android:negativeButtonText="@null" android:positiveButtonText="@null" /> <ListPreference android:key="viewMode" android:title="View Mode" android:summary="Select your View Mode" android:defaultValue="1" android:entries="@array/pref_viewMode_list_titles" android:entryValues="@array/pref_viewMode_list_values" android:negativeButtonText="@null" android:positiveButtonText="@null" /> <ListPreference android:key="charsize" android:title="Icons Size" android:summary="Select character screen size for text and icons." android:defaultValue="1" android:entries="@array/pref_character_size" android:entryValues="@array/pref_character_size_value" android:negativeButtonText="@null" android:positiveButtonText="@null" /> <ListPreference android:key="tamanhoLetra" android:title="Font Size" android:summary="Select font size you want for move list." android:defaultValue="1" android:entries="@array/pref_font_size" android:entryValues="@array/pref_font_size_value" android:negativeButtonText="@null" android:positiveButtonText="@null" /> <CheckBoxPreference android:key="screenDimming" android:title="Disable screen dimming in this app" android:summary="Disable screen locking/turning off." android:defaultValue="false" /> <CheckBoxPreference android:key="frame" android:title="Show Frame Date" android:summary="Show Frame Data for All Moves " android:defaultValue="false" /> <CheckBoxPreference android:key="damage" android:title="Show Damage" android:summary="Show Damage for All Moves " android:defaultValue="false" /> <PreferenceCategory android:title="Contact us: [email protected]"/> </PreferenceScreen>


Es muy probable que tenga una vista de configuración en su XML para tabletas que no tenga sus elementos de vista de configuración real.

Puede leer la documentación de Android para obtener más información sobre la compatibilidad con varias vistas. Básicamente, las reglas que se configuran automáticamente hacen que se use la vista XML para tabletas en lugar de teléfonos.

Debería verse algo como esto:

res/layout/my_layout.xml // layout for normal screen size ("default") res/layout-large/my_layout.xml // layout for large screen size res/layout-xlarge/my_layout.xml // layout for extra-large screen size res/layout-xlarge-land/my_layout.xml // layout for extra-large in landscape orientation

Quite el archivo XML o actualícelo para que contenga los elementos de configuración que desea.


public class SettingActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { setTheme(android.R.style.Theme_Holo_Light_DarkActionBar); requestWindowFeature(Window.FEATURE_ACTION_BAR); super.onCreate(savedInstanceState); FragmentManager mFragmentManager = getFragmentManager(); FragmentTransaction mFragmentTransaction = mFragmentManager .beginTransaction(); PrefsFragment mPrefsFragment = new PrefsFragment(); mFragmentTransaction.replace(android.R.id.content, mPrefsFragment); mFragmentTransaction.commit(); } public static class PrefsFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.preferences); String userName; String tmpemail; findPreference("profile_setting_username").setTitle(userName); findPreference("profile_setting_username").setSummary(strHtml); } } } This is how I have implemeted my Settings Activity and it works on all type of devices.