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.