J'essaie de faire des choses sur la barre d'action sous Android.
J'ai déjà ajouté de nouveaux éléments dans le côté droit de la barre d'action.
Comment puis-je changer le côté gauche de la barre d'action? Je veux changer l'icône et le texte, et je veux ajouter un "Bouton Précédent" dans la barre d'action pour les autres écrans
C'est très simple à accomplir
Si vous voulez le changer en code, appelez:
setTitle("My new title");
getActionBar().setIcon(R.drawable.my_icon);
Et définissez les valeurs comme bon vous semble.
Ou, dans le fichier XML du manifeste Android:
<activity Android:name=".MyActivity"
Android:icon="@drawable/my_icon"
Android:label="My new title" />
Pour activer le bouton de retour dans votre application, utilisez:
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
Le code doit tous être placé dans votre onCreate
afin que le changement d'étiquette/icône soit transparent pour l'utilisateur, mais en réalité, il peut être appelé n'importe où pendant le cycle de vie de l'activité.
Pour rendre une seule icône utilisable par toutes vos barres d’action, vous pouvez le faire dans votre manifeste Android.
<application
Android:logo="@drawable/Image">
...
</application>
Vous devez juste ajouter ces 3 lignes de code. Remplacez l'icône par votre propre icône. Si vous voulez générer des icônes, utilisez this
getSupportActionBar().setHomeAsUpIndicator(R.drawable.icon_back_arrow);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
Si vous souhaitez modifier le titre de la barre d'actions, indiquez simplement le code à 1 ligne suivant dans la fonction onCreate () de votre activité.
getActionBar().setTitle("Test");
Dans Android 5.0, les directives de conception des matériaux découragent l'utilisation d'icône dans ActionBar.
pour l'activer ajouter le code suivant
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.mipmap.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);
le crédit revient à l'auteur de cet article article
Vous pouvez changer l'icône de votre en ajoutant n'importe quelle icône dans vos dossiers respectifs, puis en modifiant cette ligne dans votre fichier AndroidManifest.xml:
Android:icon="@drawable/ic_launcher"
correspondre à tout le nom de votre icône est là. Ou mettez votre icône sous la forme ic_launcher, si elles sont identiques. Pour ce qui est écrit, ajoutez ou modifiez les chaînes qui correspondent à celles de votre fichier res/values / strings.xml. Puis, encore une fois dans votre fichier AndroidManifest.xml, modifiez cette ligne:
Android:label="@string/app_name"
quelle que soit la chaîne que vous avez dans leur. Vous devrez le faire pour l'application dans son ensemble et pour les activités souhaitées, mais les lignes sont les mêmes.
J'espère que cela t'aides.
Pour cela, vous pouvez le faire de 2 manières: XML ou Java. Voir ici: Comment changer le texte sur la barre d'action
Alors:
XML:
<activity Android:name=".Hello_World"
Android:label="This is the Hello World Application">
</activity>
Java:
public class TitleBar extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
if ( customTitleSupported ) {
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);
}
final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
if ( myTitleText != null ) {
myTitleText.setText("NEW TITLE");
// user can also set color using "Color" and then "Color value constant"
// myTitleText.setBackgroundColor(Color.GREEN);
}
}
}
Pour titre défini :
getActionBar().setTitle("Title");
Pour set Icon :
getActionBar().setIcon(R.drawable.YOUR_ICON_NAME);
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle(getString(R.string.titolo));
actionBar.setIcon(R.mipmap.ic_launcher);
actionBar.setDisplayShowHomeEnabled(true);
J'ai utilisé l'appel suivant dans onNavigationItemSelected
:
HomeActivity.this.setTitle(item.getTitle());
Ajoutez le code ci-dessous dans une fonction onCreate de votre activité.
setTitle("NewName");
Accédez au manifeste de l'activité spécifique que vous souhaitez modifier. Barre d'action Nom du titre et écrivez Android: label = "Nom du titre"
Ce travail pour moi:
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeAsUpIndicator(R.mipmap.baseline_dehaze_white_24);
Par défaut, le titre de la barre d'action utilise le libellé de l'activité en cours, mais vous pouvez également le définir par programme via ActionBar.setTitle()
.
Pour implémenter la fonctionnalité du bouton "Précédent" (plus précisément, "Haut") dont vous parlez, lisez la section "Utilisation de l'icône de l'application pour la navigation" du guide de développement Action Bar .
Enfin, pour changer l’icône, le guide aborde également cette question. En bref, la barre d'action affiche l'image fournie dans Android:icon
dans l'élément application
ou activity
de votre manifeste, s'il en existe un. La pratique typique consiste à créer une icône d'application (dans toutes les densités dont vous aurez besoin) nommée ic_launcher.png
et à la placer dans vos répertoires drawable-*
.
Allez dans AndroidManifest.xml fichier. Trouvez la balise <application>
Là vous pouvez voir un attribut
Android:label="@string/app_name"
Maintenant, allez dans res> values> strings.xml
Changer la
<string name="app_name">MainActivity</string>
à
<string name="app_name">Your Desired Name</string>
Exemple
AndroidManifest.xml
<application
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name"
Android:roundIcon="@mipmap/ic_launcher_round"
Android:supportsRtl="true"
Android:theme="@style/AppTheme">
<activity
Android:name=".MainActivity"
>
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity Android:name=".SubmitForm">
</activity>
</application>
strings.xml
<resources>
<string name="app_name">Your Desired Name</string>
<string name="action_settings">Settings</string>
</resources>
J'ai eu l'erreur non-static method setTitle(CharSequence) cannot be referenced from a static context
car j'ai utilisé setTitle()
dans la classe statique PlaceholderFragment. Je l'ai résolu en utilisant getActivity().getActionBar().setTitle("new title");