El título de la actividad extendida no aparece con estilo personalizado
Estoy anulando la clase de actividad de la siguiente manera;
public class MyCustomActivity extends Activity { ... ... } public class MyActivity extends MyCustomActivity { ... ... }
Y la declaración de actividad en manifiesto es así;
- Android muestra teclado suave cuando el fragmento onResume
- Custom support.v7.widget.Toolbar no se muestra en el dispositivo
- Android: borrar historial al navegar entre Actividades
- Android: haz clic en el icono de la aplicación ActionBar, crea una nueva instancia de actividad
- Llamar a una actividad desde una aplicación de otra aplicación android
<activity android:name=".MyCustomActivity" android:label="@string/app_name" > </activity> <activity android:name=".MyActivity" android:label = "ChildActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
Mi problema es que el título de actividad definido en el manifiesto en android:label="ChildActivity"
no está apareciendo con estilo personalizado. ¿Cómo puedo hacer que aparezca sin llamar a setTitle(charSeq);
En cada actividad?
Editar:
Una cosa (cosa terrible) me olvidé mencionar es que estoy usando estilo personalizado de la siguiente manera;
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/CustomTheme" > ... ... </application>
Edit (Después de la respuesta de @ Mudassir): El diseño de barra de título personalizado que estoy usando es como se indica a continuación;
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="50dip" android:gravity="center_vertical" android:orientation="horizontal" > <LinearLayout android:layout_width="wrap_content" android:gravity="left" android:orientation="horizontal" > <ImageView android:id="@+id/imageViewIcon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/vector_arts" android:layout_marginLeft="-15dp" /> <TextView android:id="@+id/textTitleBar" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </RelativeLayout>
- OnPause y OnStop () llamados inmediatamente después de iniciar la actividad
- Actividad de inicio de la URL
- ¿Por qué android.app.Activity no es abstracto por diseño?
- La actividad de Android se reinicia después de desbloquear el dispositivo
- Android: presione el botón Atrás mientras AsyncTask se está ejecutando
- Android Fragment onCreateView vs. onActivityCreated
- Diferencia entre recrear una actividad con el método recreate () y startActivity (getIntent ())
- Múltiples Actividades / Fragmentos y el Model View Presenter pattern
Según he entendido su pregunta, está utilizando una vista de texto (estilo personalizado) para mostrar el texto del título. Así que para mostrar el texto por defecto del título (definido en el manifiesto en android:label
) en la barra de título personalizada (vista de texto), tiene que sobrescribir el método setTitle
en su padre (MyCustomActivity) como se indica a continuación;
@Override public void setTitle(CharSequence titleText) { // Assuming you text view's name is titleTextView in the style XML file TextView customTitle = (TextView) findViewById(R.id.titleTextView); customTitle.setText(titleText); }
Entonces llame a este método de onCreate()
de la misma clase como sigue;
setTitle(getTitle());
Esto obtendrá la etiqueta de la actividad definida en el archivo de manifiesto y pasarlo al método setTitle()
que lo mostrará en su barra de título personalizada que es vista de texto (customTitle aquí). Tenga en cuenta que este enfoque sólo funcionará si está utilizando una vista de texto para mostrar el texto del título.
Obtiene el mismo título que se estableció en el archivo de manifiesto en el título de la actividad. Si te gusta esto:
<activity android:name=".MyActivity" android:label="ChildActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".TestingMyAcivity"></activity> public class TestingMyAcivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }
}
public class MyActivity extends TestingMyAcivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_); }
}
Obtendrá el título "ChildActivity" y el diseño en el archivo main_.xml.
MyActivity
donde ha establecido ChildActivity
como título. MyActivity es la clase child de MyCustomActivity
. Mientras que usted fijó el título de la clase del niño vino al frente. La actividad que estás viendo es en realidad Actividad Infantil no Padres. Así se muestra el título de ChildActivity
Gracias Sunil Kumar Sahoo
- Excepción al usar MapView – java.lang.RuntimeException: stub
- Elemento de ListView Estado de LongClick para el selector