2016-09-15 118 views
-3

该应用程序旨在在第一个活动中编写消息,并且在单击按钮后,此消息出现在第二个活动中。 但是在智能手机上安装应用程序后,当我点击按钮时,出现一条消息说“应用程序已停止”。 。请帮助我 “我用ECLIPSE为振兴这个应用程序”意图:启动一个活动,无法启动第二个活动

的第一项活动代码:

public class MainActivity extends Activity { 

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

    public void login (View view) { 


     EditText user = (EditText) findViewById(R.id.user); 
     EditText password = (EditText) findViewById(R.id.password); 
     Intent myintent= new Intent (getApplicationContext(),Main2Activity.class); //permet de basculer de cette interface à la 2éme aprés avoir éxécuter "startActivity(myintent)"; 

     Bundle b=new Bundle(); 
     b.putString("username", user.getText().toString()); 
     b.putString("password", password.getText().toString()); 
     myintent.putExtras(b); 
     startActivity(myintent); 
} 

第二个活动:

public class Main2Activity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 
     TextView mes=(TextView)findViewById(R.id.mes); 

     Bundle b=getIntent().getExtras(); 
     string user=(string) b.get("username"); 
     string pass=(string) b.get("password"); 
     mes.setText("user:"+user +"password:"+pass); 

} 
+1

显示您的logcat消息 – Anjali

+2

请确保'Main2Activity'在您的'AndroidManifest.xml'中定义了 –

+1

欢迎使用堆栈溢出。阅读此如何问一个好问题http://stackoverflow.com/help/how-to-ask –

回答

1

尝试一个更简单的方法将数据作为一个字符串传递,而不使用捆绑。

MainActivity.java

Intent i= new Intent(MainActivity.this,Main2Activity .class); 
i.putExtra("username",user.getText().toString()); 
i.putExtra("password",password.getText().toString()); 
startActivity(i); 

Main2Activity的.java

String name=getIntent().getExtras().getString("username"); 
txtView.setText(name); 
String pass=getIntent().getExtras().getString("password"); 
txtView2.setText(pass); 
+0

谢谢,它现在有效。但为什么不使用Bundle?包的优点是什么? thk you –

+0

http://stackoverflow.com/questions/4999991/what-is-a-bundle-in-an-android-application – kgandroid

0

改变这一行

Intent myintent= new Intent (getApplicationContext(), Main2Activity.class) 

Intent myintent= new Intent (this, Main2Activity.class) 

,看看它是否解决了问题:)

+2

这个答案没有什么区别! – Piyush

+0

谢谢你的回答,我以前试过,但是il是同样的问题。 –

0

在您次活动(Main2Activity)文件:

行之后 Bundle b=getIntent().getExtras();

你写的是(string)而不是(String)。 所以请改变它...如果你写错了。

和@AugustoCarmo的回答也是正确的。

也试试。