[JAVA] Application Android: expliquons le mécanisme de transition d'écran avec un code simple

Dernière fois Application Android: essayez de résumer les événements et les auditeurs

A continué. .. ..

introduction

Cela fait trois mois que j'ai rejoint l'entreprise. J'étudie le développement d'applications Android. Je vais le résumer après avoir étudié.

Je mâche mes propres connaissances de niveau d'introduction. Veuillez noter que de nombreuses pièces sont cassées.

Gamme à résumer cette fois

Cette fois, je vais résumer la transition d'écran avec un code simple. ・ Je veux connaître les bases des transitions d'écran. ・ Je veux comprendre simplement l'intention. Pour ceux qui disent.

Lorsque vous entrez du texte et appuyez sur le bouton d'envoi, il créera une application qui affichera le texte saisi après la transition d'écran.

Les mots qui sortent cette fois

--Intention

En termes simples, c'est comme un conteneur pour transporter des informations d'une activité à une autre. Si vous placez la chaîne de caractères dans l'activité de l'écran 1 dans une case appelée intention comme cette fois, vous pouvez utiliser la chaîne de caractères sur l'écran 2 en appelant la case sur l'écran 2.

Des mots avant la dernière fois

--Un événement

Le moment de l'utilisation de l'écran de l'utilisateur, par exemple en appuyant sur un bouton

--Auditeur

Gardez un œil sur l'événement pour qu'il puisse se produire à tout moment.

--Activité

L'écran de l'application lui-même.

Échantillon et commentaire

environnement

androidstudio 3.6.2 openjdk version "11.0.6"

Écran pour créer

C'est l'écran à créer cette fois. シンプル画面遷移.jpg

J'écrirai pour que les caractères saisis puissent être affichés à la destination de la transition lorsque le bouton est enfoncé. Créez deux classes Java requises et deux fichiers de mise en page.

MainActivity.java


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Définir le bouton d'envoi en tant qu'auditeur
        Button btClick = findViewById(R.id.btOutput);
        Listener listener = new Listener();
        btClick.setOnClickListener(listener);
    }


    //Créer une classe d'auditeur
    private class Listener implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            EditText input = findViewById(R.id.sendEditText);
            String inputStr = input.getText().toString();

            //Créer un objet d'intention
            Intent intent = new  Intent(MainActivity.this,OutputActivity.class);
            //Stocker les données à envoyer à l'écran ②
            intent.putExtra("inputText",inputStr);
            //Écran de lancement
            startActivity(intent);
        }
    }
}

OutputActivity.java



public class OutputActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sub_activity);

        //Obtenez l'objet d'intention créé à l'écran ①
        Intent intent = getIntent();
        //Obtenir des informations sur les personnages et les afficher à l'écran
        TextView output = findViewById(R.id.outputText);
        String outputText = intent.getStringExtra("inputText");
        output.setText(outputText);
    }
}

activity_main.xml


<LinearLayout ~~ Omis ~~>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/title"/>
    <EditText
        android:id="@+id/sendEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <Button
        android:id="@+id/btOutput"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Vers l'écran suivant"/>
</LinearLayout>

sub_activity.xml


<LinearLayout ~~ Omis ~~>

    <TextView
        android:id="@+id/outputText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="40dp"/>

</LinearLayout>

À propos du mécanisme et de l'intention

Lancement de l'application: traitement MainActivity (le premier écran est affiché par ce traitement) ↓ Bouton d'envoi Occurrence d'événement: traitement OutputActivity (le deuxième écran s'affiche)

En d'autres termes, lorsque cet événement de bouton d'envoi se produit, les données de chaîne de caractères entrées par l'utilisateur sont envoyées de MainActivity à OutputActivity à l'aide d'un intent. L'intention sera préparée lorsque l'événement se produira, alors écrivez-le dans la classe d'écouteur.

La partie qui place les données dans une zone appelée intention

MainActivity.java



//Créer un objet d'intention
Intent intent = new  Intent(MainActivity.this,OutputActivity.class);
//Stocker les données à envoyer à l'écran ②
intent.putExtra("inputText",inputStr);
//Écran de lancement
startActivity(intent);

Créer un objet d'intention ↓ Stockez les données stockées dans l'intention avec putExtra ↓ Lancez l'écran suivant

Lors de la création d'un objet d'intention, décrivez la classe Activity de l'écran d'origine dans le premier argument et la classe Activity de l'écran que vous souhaitez envoyer dans le second argument.

SubActivity.java



//Obtenez l'objet d'intention créé à l'écran ①
Intent intent = getIntent();
//Obtenir des informations sur les personnages et les afficher à l'écran
TextView output = findViewById(R.id.outputText);
String outputText = intent.getStringExtra("inputText");
output.setText(outputText);

La partie appelante sur le deuxième écran. Vous pouvez appeler l'objet d'intention créé sur l'écran initial avec getIntent. Il ne vous reste plus qu'à écrire le processus pour afficher la chaîne de caractères.

Mise en garde

Dans le dossier du projet, il y a un fichier appelé AndroidManifest qui contient les informations nécessaires pour configurer Android. S'il y a deux écrans ou plus, l'application ne fonctionnera que si vous ajoutez le nom de l'activité ici. Ici, ajoutez " </ activity>" comme indiqué ci-dessous.


<application ~~ omise ~~>
        <activity android:name=".MainActivity">
~~ Omis ~~
        </activity>

        <activity android:name=".OutputActivity"></activity>
</application>

À la fin

J'ai terminé deux livres d'introduction en un mois environ. Bien que ma compréhension progresse progressivement, je suis toujours amateur.

La prochaine fois, je résumerai le cycle de vie

Recommended Posts

Application Android: expliquons le mécanisme de transition d'écran avec un code simple
[Android] Quittez l'activité de la source de transition au moment de la transition d'écran
[Android Studio] [Pour les débutants] Expliquons grossièrement l'écran et le répertoire
L'histoire du réglage de l'application Android avec libGDX
[Android 9.0 Pie Java] Écran de liste de discussion de style LINE → Animation de transition de l'écran de discussion personnelle implémentée (avec exemple d'application)
Expérimentons le flux d'octroi de code d'autorisation avec Spring Security OAuth-Part 1: Review of OAuth 2.0
Implémentez iOS14 UICollectionView avec le code minimum requis.
À peu près le flux de développement d'applications Web avec Rails.
Je vais expliquer la différence entre le développement d'applications Android et le développement d'applications iOS du point de vue des ingénieurs iOS
Vérifier le fonctionnement de deux rôles avec une application de chat
Jetons un coup d'œil à l'écran de Quant Analyzer!
Spécifiez le code de caractère de la source lors de la construction avec Maven
Expliquez les mérites du modèle d'État avec le jugement de notation du film
Réécrire les affectations de langage C de l'université avec Node.js
Développement Android ~ transition d'écran (intention) ~
Transition d'écran avec swing, java
Un mémo qui conteneurise l'application de chat simple de Node.js + socket.io
Créons une application TODO en Java 5 Changer l'affichage de TODO
[Android] Définir dynamiquement la hauteur de ListView avec copie (pour les débutants)
[Débutant] Essayez d'écrire l'API REST pour l'application Todo avec Spring Boot