Android 从一个活动切换到另一个活动时意图不起作用
我制作了一个包含两个活动的简单android程序,第一个活动包含一个edittext和一个按钮,第二个活动包含一个textview。现在,当第一个活动中的按钮按下时,edittext中的文本应该转到第二个活动的textview。我尝试了以下代码,但它不起作用: MainActivity.javaAndroid 从一个活动切换到另一个活动时意图不起作用,android,android-intent,Android,Android Intent,我制作了一个包含两个活动的简单android程序,第一个活动包含一个edittext和一个按钮,第二个活动包含一个textview。现在,当第一个活动中的按钮按下时,edittext中的文本应该转到第二个活动的textview。我尝试了以下代码,但它不起作用: MainActivity.java package com.example.myweb; import android.os.Bundle; import android.app.Activity; import android.con
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);
}
});
}
}
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);
}
});
}
}
package com.example.activityact;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class Act2 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act2);
// TODO Auto-generated method stub
TextView tv = (TextView) findViewById(R.id.textView1);
Intent i =getIntent();
// String msg = i.getStringExtra(EXTRA_MESSAGE);
//String receiver = getIntent().getStringExtra(EXTRA_MESSAGE);
String message = i.getStringExtra("EXTRA_MESSAGE");
tv.setText(message);
}
}
Act2.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);
}
});
}
}
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);
}
});
}
}
package com.example.activityact;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class Act2 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act2);
// TODO Auto-generated method stub
TextView tv = (TextView) findViewById(R.id.textView1);
Intent i =getIntent();
// String msg = i.getStringExtra(EXTRA_MESSAGE);
//String receiver = getIntent().getStringExtra(EXTRA_MESSAGE);
String message = i.getStringExtra("EXTRA_MESSAGE");
tv.setText(message);
}
}
请帮帮我。谢谢你试试
Intent i = new Intent(MainActivity.this,Act2.class);
试一试
您是否记得在清单XML中正确定义第二个活动
查看这本很棒的指南,了解您可能遗漏的任何内容:您是否记得在清单XML中正确定义第二个活动 查看这本很棒的指南,了解您可能错过的任何其他内容:您正在使用的
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
因此,在主要活动中
i.putExtra(EXTRA_MESSAGE, s);
startActivity(i);
i.putExtra(EXTRA_MESSAGE, s);
startActivity(i);
您正在使用
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
因此,在主要活动中
i.putExtra(EXTRA_MESSAGE, s);
startActivity(i);
i.putExtra(EXTRA_MESSAGE, s);
startActivity(i);
您正在使用
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
因此,在主要活动中
i.putExtra(EXTRA_MESSAGE, s);
startActivity(i);
i.putExtra(EXTRA_MESSAGE, s);
startActivity(i);
(或)
而且
您正在使用
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
因此,在主要活动中
i.putExtra(EXTRA_MESSAGE, s);
startActivity(i);
i.putExtra(EXTRA_MESSAGE, s);
startActivity(i);
(或)
而且
改变
到
MainActivity.EXTRA_MESSAGE
表示一个静态变量MainActivity.java
class。希望你能有所不同。您需要变量EXTRA_MESSAGE
,该变量已放入intent i
编辑:对于您的崩溃,我们需要一个logcat o/p和活动,清单代码。但可能的原因是:
Act2.java
未在manifest
文件中声明act2.xml
获取按钮1
。所以你正接近武力onCreate()
更改为
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act2);
TextView tv = (TextView)findViewById(R.id.tv1);
Intent i =getIntent();
String msg = i.getStringExtra("EXTRA_MESSAGE");
tv.setText(msg);
}
您不需要调用setContentView(电视)代码>因为它已经存在于act2.xml中,并且您正在使用setContentView(R.layout.act2)代码>
希望你的问题得到解决。改变
String msg = i.getStringExtra(MainActivity.EXTRA_MESSAGE);
到
MainActivity.EXTRA_MESSAGE
表示一个静态变量MainActivity.java
class。希望你能有所不同。您需要变量EXTRA_MESSAGE
,该变量已放入intent i
编辑:对于您的崩溃,我们需要一个logcat o/p和活动,清单代码。但可能的原因是:
活动Act2.java
未在manifest
文件中声明
你说你在第二个活动中只有一个文本视图。但是您正试图从act2.xml
获取按钮1
。所以你正接近武力
将Act2.java的onCreate()
更改为
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act2);
TextView tv = (TextView)findViewById(R.id.tv1);
Intent i =getIntent();
String msg = i.getStringExtra("EXTRA_MESSAGE");
tv.setText(msg);
}
您不需要调用setContentView(电视)代码>因为它已经存在于act2.xml中,并且您正在使用setContentView(R.layout.act2)代码>
希望你的问题得到解决。试试这个:
在MainActivity.java中:
public final static String EXTRA_MESSAGE = "com.example.myweb";
i.put("EXTRA_MESSAGE",s);
将按钮b和编辑文本声明为类字段(即,将其保留在onCreate()之外)
在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
}
});
...
试试这个:
在MainActivity.java中:
public final static String EXTRA_MESSAGE = "com.example.myweb";
i.put("EXTRA_MESSAGE",s);
将按钮b和编辑文本声明为类字段(即,将其保留在onCreate()之外)
在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
}
});
...
使用此代码
**MainActivity.java**
公共类MainActivity扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
按钮按钮=(按钮)findViewById(R.id.button1);
final EditText EditText=(EditText)findViewById(R.id.editText1);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
Intent Intent=新的Intent(getApplicationContext(),SecondActivity.class);
intent.putExtra(“额外消息”,editText.getText().toString());
星触觉(意向);
}
});
}
}
**activity_main.xml**
**SecondActivity.java**
公共类SecondActivity扩展了活动{
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//TODO自动生成的方法存根
setContentView(R.layout.second);
Intent=getIntent();
最终字符串消息=intent.getStringExtra(“额外消息”);
按钮按钮=(按钮)findViewById(R.id.button1);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
TextView TextView=新的TextView(SecondActivity.this);
textView.setText(消息);
setContentView(文本视图);
}
});
}
}
**second.xml**
使用此代码
**MainActivity.java**
公共类MainActivity扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
按钮按钮=(按钮)findViewById(R.id.button1);
final EditText EditText=(EditText)findViewById(R.id.editText1);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
Intent Intent=新的Intent(getApplicationContext(),SecondActivity.class);
intent.putExtra(“额外消息”,editText.getText().toString());
星触觉(意向);
}
});
}
}
**activity_main.xml**
**SecondActivity.java**
公共类SecondActivity扩展了活动{
/**卡尔