[英]How can I send two different text intents to the same textview from one activity to another?
我已經閱讀了很多答案,但我找不到我的代碼哪里出錯了。 我想在我的第一個活動上有 2 個按鈕。 當我單擊 button1 或 button2 時,我希望該特定字符串資源中保存的文本出現在活動二的 textview 上。 我能夠填充其中一個字符串,但它不會根據我單擊的按鈕將它們分開。
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/button_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="162dp"
android:layout_marginTop="150dp"
android:layout_marginEnd="161dp"
android:onClick="launchSecondActivity"
android:text="Passage 1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button_two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="162dp"
android:layout_marginTop="244dp"
android:layout_marginEnd="161dp"
android:onClick="launchSecondActivity"
android:text="Passage 2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button_three"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="162dp"
android:layout_marginTop="368dp"
android:layout_marginEnd="161dp"
android:onClick="launchSecondActivity"
android:text="Passage 3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/button_main_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="180dp"
android:layout_marginTop="114dp"
android:layout_marginEnd="172dp"
android:layout_marginBottom="400dp"
android:text="@string/button_main_passage"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button_main" />
<TextView
android:id="@+id/button_second_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="180dp"
android:layout_marginTop="114dp"
android:layout_marginEnd="172dp"
android:layout_marginBottom="400dp"
android:text="@string/button_second_passage"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button_main" />
<TextView
android:id="@+id/button_third_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="180dp"
android:layout_marginTop="114dp"
android:layout_marginEnd="172dp"
android:layout_marginBottom="400dp"
android:text="@string/button_third_passage"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button_main" />
</androidx.constraintlayout.widget.ConstraintLayout>
Activity_passage.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".PassageActivity">
<ScrollView
android:id="@+id/scroll_passage"
android:layout_width="409dp"
android:layout_height="729dp"
android:layout_marginTop="1dp"
android:layout_marginBottom="1dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/text_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
<TextView
android:id="@+id/text_message_two"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
字符串.xml
<resources>
<string name="app_name">ThreeButtons</string>
<string name="activity2_name">Passage</string>
<string name="button_main_passage">First Passage First Passage First Passage First
Passage</string>
<string name="button_second_passage">Second Passage Second Passage Second Passage Second
Passage</string>
</resources>
MainActivity.java
package com.dev20.threebuttons;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TextView mButtonMainText;
private TextView mButtonSecondText;
private static final String LOG_TAG = MainActivity.class.getSimpleName();
public static final String EXTRA_MESSAGE = "com.example.android.threebuttons.extra.MESSAGE";
public static final String EXTRA_MESSAGE2 = "com.example.android.threebuttons.extra.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButtonMainText = findViewById(R.id.button_main_text);
mButtonSecondText = findViewById(R.id.button_second_text);
}
public void launchSecondActivity(View view) {
Log.d(LOG_TAG, "Button Clicked");
Intent intent = new Intent(this, PassageActivity.class);
String message = mButtonMainText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
Intent intent2 = new Intent(this, PassageActivity.class);
String message2 = mButtonSecondText.getText().toString();
intent2.putExtra(EXTRA_MESSAGE2, message2);
startActivity(intent);
}
}
PassageActivity.java
package com.dev20.threebuttons;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class PassageActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_passage);
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
TextView textView = findViewById(R.id.text_message);
textView.setText(message);
Intent intent2 = getIntent();
String message2 = intent2.getStringExtra(MainActivity.EXTRA_MESSAGE2);
TextView textView2 = findViewById(R.id.text_message);
textView2.setText(message2);
}
}
我認為您必須制作兩個單獨的功能。 為什么您在一個 function 中添加 2 個意圖? 你只想做一個意圖並傳遞一個字符串。 此外,您可以將標簽添加到button 1 = But1
和button 2 = But2
。 只需將 XML 布局android:tag="But1"
添加到兩個按鈕即可。 '
public void launchSecondActivity(View view) {
String arg = null;
if (view.getTag().equals("But1"))
{
arg = mButtonMainText.getText().toString();
}
else if (view.getTag().equals("But2"))
{
arg = mButtonSecondText.getText().toString();
}
Intent intent = new Intent(this, PassageActivity.class);
intent.putExtra(EXTRA_MESSAGE, arg);
startActivity(intent);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.