Java 输入一个活动中的文本并在另一个活动中显示,而无需创建另一个intent或startActivity()方法
我刚接触安卓系统,开始探索事物。我的主要活动是FirstActivity和相应的first\u layout.xml。每当点击第三个活动按钮时,我们就会进入链接到第三个活动的第三个布局。java有一个EditText视图组件,我们通过该组件输入数据,点击发送后,我试图将文本第三个更改为输入的数据。请注意,我不想通过意图启动新活动,也不想使用startActivity(),因为它会更改FirstActivity的状态 (即单击按钮后,消息Hello World!变为问候语,然后如果我打开ThirdActivity并发送数据,问候语的状态应保持原样,但如果我使用INTERENT或startActivity()问候语的状态被覆盖并从第一个开始显示,即Hello World!,我不想)在这里不断尝试不同的方法,非常感谢您的帮助 我有FirstActivity和ThirdActivity的代码以及它们的屏幕截图,如下所示。提前谢谢 FirstActivity.javaJava 输入一个活动中的文本并在另一个活动中显示,而无需创建另一个intent或startActivity()方法,java,android,xml,android-intent,textview,Java,Android,Xml,Android Intent,Textview,我刚接触安卓系统,开始探索事物。我的主要活动是FirstActivity和相应的first\u layout.xml。每当点击第三个活动按钮时,我们就会进入链接到第三个活动的第三个布局。java有一个EditText视图组件,我们通过该组件输入数据,点击发送后,我试图将文本第三个更改为输入的数据。请注意,我不想通过意图启动新活动,也不想使用startActivity(),因为它会更改FirstActivity的状态 (即单击按钮后,消息Hello World!变为问候语,然后如果我打开Third
public class FirstActivity extends AppCompatActivity {
TextView textViewX;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
textViewX= (TextView) findViewById(R.id.f_textView_1);
}
public void toggleMessage(View view){
if(textViewX.getText().equals("Hello World!")){
textViewX.setText("Greetings");
}
else if(textViewX.getText().equals("Greetings")){
textViewX.setText("Hello World!");
}
}
public void toggleActivities(View view){
Intent intent = null;
if( ((Button )view).getText().equals("Second Activity")){
intent = new Intent(this,SecondActivity.class);
}
else if(((Button)view).getText().equals("Third Activity")){
intent = new Intent(this,ThirdActivity.class);
}
startActivity(intent);
}
}
public class ThirdActivity extends Activity{
TextView textview= null;
EditText message_text=null;
FirstActivity firstActivity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.third_layout);
}
public void sendMessage(View view){
message_text= (EditText) findViewById(R.id.editText);
String message = message_text.getText().toString();
firstActivity.displayMessage(message);
LayoutInflater factory = getLayoutInflater();
View textEntryView = factory.inflate(R.layout.first_layout, null); textview = (TextView) textEntryView.findViewById(R.id.f_textView_3);
if(message!=null){
if(textview.getVisibility()==View.VISIBLE){
textview.setText(message);
}
}
else{
message="no Entry Found";
textview.setText(message);
}
this.finish();
}
}
first_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/first_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.badarikrishnasg.firstapplication.FirstActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:id="@+id/f_textView_1" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/f_button_1"
android:layout_below="@+id/f_textView_1"
android:text="Click"
android:onClick="toggleMessage"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Move between activities"
android:id="@+id/f_textView_2"
android:layout_below="@+id/f_button_1"
android:layout_centerHorizontal="true"
android:layout_marginTop="28dp" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/f_button_2"
android:text="Second Activity"
android:onClick="toggleActivities"
android:layout_below="@+id/f_textView_2"
android:layout_alignParentStart="true"
android:layout_marginTop="33dp" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/f_button_3"
android:text="Third Activity"
android:onClick="toggleActivities"
android:layout_marginTop="28dp"
android:layout_below="@+id/f_button_2"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible"
android:id="@+id/f_textView_3"
android:text="THIRD"
android:layout_below="@+id/f_button_3" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="Enter Search word"
android:id="@+id/editText" />
<!--<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Welcome to Third Activity"
android:textColor="@color/colorAccent"
android:textAlignment="center"
android:layout_gravity="bottom"
android:id="@+id/t_textView_1" />-->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/send"
android:onClick="sendMessage"/>
</LinearLayout>
third_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/first_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.badarikrishnasg.firstapplication.FirstActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:id="@+id/f_textView_1" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/f_button_1"
android:layout_below="@+id/f_textView_1"
android:text="Click"
android:onClick="toggleMessage"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Move between activities"
android:id="@+id/f_textView_2"
android:layout_below="@+id/f_button_1"
android:layout_centerHorizontal="true"
android:layout_marginTop="28dp" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/f_button_2"
android:text="Second Activity"
android:onClick="toggleActivities"
android:layout_below="@+id/f_textView_2"
android:layout_alignParentStart="true"
android:layout_marginTop="33dp" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/f_button_3"
android:text="Third Activity"
android:onClick="toggleActivities"
android:layout_marginTop="28dp"
android:layout_below="@+id/f_button_2"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible"
android:id="@+id/f_textView_3"
android:text="THIRD"
android:layout_below="@+id/f_button_3" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="Enter Search word"
android:id="@+id/editText" />
<!--<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Welcome to Third Activity"
android:textColor="@color/colorAccent"
android:textAlignment="center"
android:layout_gravity="bottom"
android:id="@+id/t_textView_1" />-->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/send"
android:onClick="sendMessage"/>
</LinearLayout>
您可以尝试使用
startActivityForResult(意图)开始第三项活动代码>
您必须这样编写静态方法displayMessage
public static void displayMessage (String msg){
textViewX.setText(msg);
}
message_text= (EditText) findViewById(R.id.editText);
String message = message_text.getText().toString();
firstActivity.displayMessage(message);
然后在发送按钮中调用它,像这样单击侦听器
public static void displayMessage (String msg){
textViewX.setText(msg);
}
message_text= (EditText) findViewById(R.id.editText);
String message = message_text.getText().toString();
firstActivity.displayMessage(message);
为此,您必须使用startActivityForResult(意图)
在FirstActivity中:
public void toggleActivities(View view){
Intent intent = null;
if( ((Button )view).getText().equals("Second Activity")){
intent = new Intent(this,SecondActivity.class);
startActivityForResult(intent,0);
}
else if(((Button)view).getText().equals("Third Activity")){
intent = new Intent(this,ThirdActivity.class);
startActivityForResult(intent,1);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultcode = RESULT_OK){
if(requestCode == 0){
final String message = data.getStringExtra("key_message");
textview.setText(message);
}else if(requestCode == 1){
final String message = data.getStringExtra("key_message");
textview.setText(message);
}
}
}
public void sendMessage(View view){
message_text= (EditText) findViewById(R.id.editText);
String message = message_text.getText().toString();
final Intent intent = new Intent();
intent.putExtra("key_message",message);
setResult(RESULT_OK,intent)
this.finish();
}
public void sendMessage(View view){
message_text= (EditText) findViewById(R.id.editText);
String message = message_text.getText().toString();
final Intent intent = new Intent();
intent.putExtra("key_message",message);
setResult(RESULT_OK,intent)
this.finish();
}
在第二个活动中:
public void toggleActivities(View view){
Intent intent = null;
if( ((Button )view).getText().equals("Second Activity")){
intent = new Intent(this,SecondActivity.class);
startActivityForResult(intent,0);
}
else if(((Button)view).getText().equals("Third Activity")){
intent = new Intent(this,ThirdActivity.class);
startActivityForResult(intent,1);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultcode = RESULT_OK){
if(requestCode == 0){
final String message = data.getStringExtra("key_message");
textview.setText(message);
}else if(requestCode == 1){
final String message = data.getStringExtra("key_message");
textview.setText(message);
}
}
}
public void sendMessage(View view){
message_text= (EditText) findViewById(R.id.editText);
String message = message_text.getText().toString();
final Intent intent = new Intent();
intent.putExtra("key_message",message);
setResult(RESULT_OK,intent)
this.finish();
}
public void sendMessage(View view){
message_text= (EditText) findViewById(R.id.editText);
String message = message_text.getText().toString();
final Intent intent = new Intent();
intent.putExtra("key_message",message);
setResult(RESULT_OK,intent)
this.finish();
}
第三十届:
public void toggleActivities(View view){
Intent intent = null;
if( ((Button )view).getText().equals("Second Activity")){
intent = new Intent(this,SecondActivity.class);
startActivityForResult(intent,0);
}
else if(((Button)view).getText().equals("Third Activity")){
intent = new Intent(this,ThirdActivity.class);
startActivityForResult(intent,1);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultcode = RESULT_OK){
if(requestCode == 0){
final String message = data.getStringExtra("key_message");
textview.setText(message);
}else if(requestCode == 1){
final String message = data.getStringExtra("key_message");
textview.setText(message);
}
}
}
public void sendMessage(View view){
message_text= (EditText) findViewById(R.id.editText);
String message = message_text.getText().toString();
final Intent intent = new Intent();
intent.putExtra("key_message",message);
setResult(RESULT_OK,intent)
this.finish();
}
public void sendMessage(View view){
message_text= (EditText) findViewById(R.id.editText);
String message = message_text.getText().toString();
final Intent intent = new Intent();
intent.putExtra("key_message",message);
setResult(RESULT_OK,intent)
this.finish();
}
在应用程序类中创建getter和setter。。设置第一个活动中的消息并从第三个活动中获取消息。您可以使用startActivityForResult()
和onActivityResult()
进行此操作