简体   繁体   English

意图:开始一个活动,无法开始第二个活动

[英]Intent : To start an activity, unable to start the second activity

The application aims to write a message at the first activity, and after clicking on a button, this message appears in the second activity.该应用程序旨在在第一个活动中编写一条消息,单击按钮后,该消息出现在第二个活动中。 But After installing the application on smartphone, when i click on the button, a message appears saying " application is stopped".但是在智能手机上安装应用程序后,当我单击按钮时,会出现一条消息说“应用程序已停止”。 Help me please." i USED ECLIPSE for developping this application"请帮助我。“我使用 ECLIPSE 来开发此应用程序”

The first activity code:第一个活动代码:

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);
}

The second activity:第二个活动:

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);

}

Try a simpler way to pass data as a String,without using bundle.尝试一种更简单的方法将数据作为字符串传递,而不使用 bundle。

MainActivity.java主活动.java

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

and in Main2Activity .java并在Main2Activity .java

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

Change this line改变这一行

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

to

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

And see if it solves the problem :)看看它是否解决了问题:)

On Your Second Activity(Main2Activity) File:关于你的第二个活动(Main2Activity)文件:

The Line After Bundle b=getIntent().getExtras(); Bundle b=getIntent().getExtras();后的行Bundle b=getIntent().getExtras();

you have written (string) instead of (String) .你写的是(string)而不是(String) So please change it...if u have written it mistakenly.所以请改变它...如果你写错了。

and @AugustoCarmo answer is also correct. @AugustoCarmo 的回答也是正确的。

Try That Also.也试试。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM