android - 从一项 Activity 切换到另一项 Activity 时 Intent 不起作用

标签 android android-intent

我制作了一个包含两个 Activity 的简单 android 程序,第一个 Activity 包含一个编辑文本和一个按钮,第二个 Activity 包含一个 TextView 。现在,当第一个 Activity 中的按钮按下时,来自 Edittext 的文本应该转到第二个 Activity 的 TextView .我试过下面的代码,但它不工作:

MainActivity.java

package com.example.myweb;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
     public final static String EXTRA_MESSAGE = "com.example.myweb";

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


        Button b =(Button)findViewById(R.id.button1);
        b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                 EditText ed = (EditText)findViewById(R.id.edit_msg);
                Intent i = new Intent(getApplicationContext(),Act2.class);
            String s= ed.getText().toString();

            i.putExtra("EXTRA_MESSAGE", s);
                startActivity(i);

            }
        });

    }

}

Act2.java

package com.example.myweb;

import org.w3c.dom.Text;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Act2 extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.act2);
        Button b1=(Button)findViewById(R.id.button1);
        b1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
            TextView tv = (TextView)findViewById(R.id.tv1); 
                Intent i =getIntent();
                String msg = i.getStringExtra(MainActivity.EXTRA_MESSAGE);
            tv.setText(msg);

            setContentView(tv);





            }
        });
    }
}

请帮帮我,谢谢

最佳答案

试试这个:

在 MainActivity.java 中:

将 Button b 和 EditText ed 声明为类字段(即将其保留在 onCreate() 之外)

class MainActivity.java
{
Button b;
EditText ed;
...

onCreate() {
...
        b =(Button)findViewById(R.id.button1);
ed = (EditText)findViewById(R.id.edit_msg);
        b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub


                Intent i = new Intent(MainActivity.this,Act2.class);
            String s= ed.getText().toString();

            i.putExtra("EXTRA_MESSAGE", s);
                startActivity(i);

            }
        });
...

在 Act2.java 中:

    ...
    Intent i = getIntent();
    String msg = i.getStringExtra("EXTRA_MESSAGE");


    TextView tv = (TextView)findViewById(R.id.tv1); 
tv.setText(msg);
     Button b1=(Button)findViewById(R.id.button1);
            b1.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub



                }
            });
    ...

关于android - 从一项 Activity 切换到另一项 Activity 时 Intent 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16293455/

相关文章:

java - 如何从java代码调用JavaScript函数android native

android - Ant 构建失败 : uibuild. xml: 198 null 返回: 1

android - 某些 androids 应用程序无法通过 fiddler 连接

android - 单击通知组不会重定向到特定屏幕,而不是在奥利奥中重新启动该应用程序

android - 将多个图像 URL 共享给其他应用程序

android - CursorAdapter 并不总是在 AutoCompleteTextView 上工作

java - 横向视频 View

java - 通过 Intent/未决 Intent 传递数据

Android Geofencing - 没有 future 的 Intent ?

java - 如何获取其他 Activity 的上下文?