Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 输入一个活动中的文本并在另一个活动中显示,而无需创建另一个intent或startActivity()方法_Java_Android_Xml_Android Intent_Textview - Fatal编程技术网

Java 输入一个活动中的文本并在另一个活动中显示,而无需创建另一个intent或startActivity()方法

Java 输入一个活动中的文本并在另一个活动中显示,而无需创建另一个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

我刚接触安卓系统,开始探索事物。我的主要活动是FirstActivity和相应的first\u layout.xml。每当点击第三个活动按钮时,我们就会进入链接到第三个活动的第三个布局。java有一个EditText视图组件,我们通过该组件输入数据,点击发送后,我试图将文本第三个更改为输入的数据。请注意,我不想通过意图启动新活动,也不想使用startActivity(),因为它会更改FirstActivity的状态 即单击按钮后,消息Hello World!变为问候语,然后如果我打开ThirdActivity并发送数据,问候语的状态应保持原样,但如果我使用INTERENT或startActivity()问候语的状态被覆盖并从第一个开始显示,即Hello World!,我不想在这里不断尝试不同的方法,非常感谢您的帮助

我有FirstActivity和ThirdActivity的代码以及它们的屏幕截图,如下所示。提前谢谢

FirstActivity.java

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()
进行此操作