Letztes Mal Android-App: Versuchen Sie, Ereignisse und Listener zusammenzufassen
Fortsetzung. .. ..
Es ist drei Monate her, seit ich in die Firma eingetreten bin. Ich studiere Android-Anwendungsentwicklung. Ich werde es nach dem Studium zusammenfassen.
Ich kaue auf meinem eigenen Einführungswissen. Bitte beachten Sie, dass viele Teile defekt sind.
Dieses Mal werde ich den Bildschirmübergang mit einem einfachen Code zusammenfassen. ・ Ich möchte die Grundlagen von Bildschirmübergängen kennen. ・ Ich möchte die Absicht einfach verstehen. Für diejenigen, die sagen.
Wenn Sie Text eingeben und die Senden-Taste drücken, wird eine Anwendung erstellt, die den eingegebenen Text nach dem Bildschirmübergang anzeigt.
--Absicht
Einfach ausgedrückt ist es wie ein Container, um Informationen von einer Aktivität zur nächsten zu transportieren. Wenn Sie die Zeichenfolge in die Aktivität von Bildschirm 1 in einem Feld namens "Intent" wie dieses Mal einfügen, können Sie die Zeichenfolge auf Bildschirm 2 verwenden, indem Sie das Feld auf Bildschirm 2 aufrufen.
--Veranstaltung
Der Moment der Bedienung des Benutzerbildschirms, z. B. Drücken einer Taste
--Hörer
Behalten Sie das Ereignis im Auge, damit es jederzeit eintreten kann.
--Aktivität
Der App-Bildschirm selbst.
androidstudio 3.6.2 openjdk version "11.0.6"
Dies ist der Bildschirm, der dieses Mal erstellt werden soll.
Ich werde schreiben, damit die eingegebenen Zeichen am Übergangsziel angezeigt werden können, wenn die Taste gedrückt wird. Erstellen Sie zwei erforderliche Java-Klassen und zwei Layoutdateien.
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Stellen Sie die Senden-Schaltfläche als Listener ein
Button btClick = findViewById(R.id.btOutput);
Listener listener = new Listener();
btClick.setOnClickListener(listener);
}
//Erstellen Sie eine Listener-Klasse
private class Listener implements View.OnClickListener{
@Override
public void onClick(View v) {
EditText input = findViewById(R.id.sendEditText);
String inputStr = input.getText().toString();
//Erstellen Sie ein Absichtsobjekt
Intent intent = new Intent(MainActivity.this,OutputActivity.class);
//Speichern Sie die Daten, die an den Bildschirm gesendet werden sollen ②
intent.putExtra("inputText",inputStr);
//Startbildschirm
startActivity(intent);
}
}
}
OutputActivity.java
public class OutputActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sub_activity);
//Holen Sie sich das auf dem Bildschirm erstellte Absichtsobjekt ①
Intent intent = getIntent();
//Holen Sie sich Charakterinformationen und geben Sie sie auf dem Bildschirm aus
TextView output = findViewById(R.id.outputText);
String outputText = intent.getStringExtra("inputText");
output.setText(outputText);
}
}
activity_main.xml
<LinearLayout ~~ Ausgelassen ~~>
<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="Zum nächsten Bildschirm"/>
</LinearLayout>
sub_activity.xml
<LinearLayout ~~ Ausgelassen ~~>
<TextView
android:id="@+id/outputText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="40dp"/>
</LinearLayout>
App-Start: MainActivity-Verarbeitung (der erste Bildschirm wird von dieser Verarbeitung angezeigt) ↓ Schaltfläche "Senden" Ereignisereignis: OutputActivity-Verarbeitung (zweiter Bildschirm wird angezeigt)
Mit anderen Worten, wenn dieses Ereignis der Schaltfläche "Senden" auftritt, werden die vom Benutzer eingegebenen Zeichenfolgendaten mit einer Absicht von MainActivity an OutputActivity gesendet. Die Absicht wird vorbereitet, wenn das Ereignis eintritt. Schreiben Sie sie daher in die Listener-Klasse.
Der Teil, der Daten in eine Box namens Intent legt
MainActivity.java
//Erstellen Sie ein Absichtsobjekt
Intent intent = new Intent(MainActivity.this,OutputActivity.class);
//Speichern Sie die Daten, die an den Bildschirm gesendet werden sollen ②
intent.putExtra("inputText",inputStr);
//Startbildschirm
startActivity(intent);
Erstellen Sie ein Absichtsobjekt ↓ Speichern Sie die in der Absicht gespeicherten Daten mit putExtra ↓ Starten Sie den nächsten Bildschirm
Beschreiben Sie beim Erstellen eines Absichtsobjekts die Aktivitätsklasse des ursprünglichen Bildschirms im ersten Argument und die Aktivitätsklasse des Bildschirms, den Sie im zweiten Argument senden möchten.
SubActivity.java
//Holen Sie sich das auf dem Bildschirm erstellte Absichtsobjekt ①
Intent intent = getIntent();
//Holen Sie sich Charakterinformationen und geben Sie sie auf dem Bildschirm aus
TextView output = findViewById(R.id.outputText);
String outputText = intent.getStringExtra("inputText");
output.setText(outputText);
Der aufrufende Teil auf dem zweiten Bildschirm. Sie können das auf dem Startbildschirm erstellte Absichtsobjekt mit getIntent aufrufen. Jetzt müssen Sie nur noch den Prozess schreiben, um die Zeichenfolge anzuzeigen.
Im Projektordner befindet sich eine Datei namens AndroidManifest, die die Informationen enthält, die zum Konfigurieren von Android erforderlich sind.
Wenn zwei oder mehr Bildschirme vorhanden sind, funktioniert die App nur, wenn Sie hier den Aktivitätsnamen hinzufügen. Fügen Sie hier "
<Anwendung ~~ weggelassen ~~>
<activity android:name=".MainActivity">
~~ weggelassen ~~
</activity>
<activity android:name=".OutputActivity"></activity>
</application>
Ich habe in ungefähr einem Monat zwei Einführungsbücher fertiggestellt. Obwohl sich mein Verständnis allmählich weiterentwickelt, bin ich immer noch ein Amateur.
Nächstes Mal werde ich den Lebenszyklus zusammenfassen
Recommended Posts