首页 > 解决方案 > 如何在第二次活动中打印吐司?

问题描述

我正在尝试在吐司中打印行数。但它只是让我一次又一次地参加第一项活动。

idk 我在这里做错了什么。

代码应该是这样的:->在文本框中输入数字,它将打印否。按下按钮时,在第二个活动的吐司中的行数。

代码是这样的:


import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    private Button obbtSend;
    private EditText obetMessage;

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

        obbtSend = (Button)findViewById(R.id.btSend);
        obetMessage = (EditText)findViewById(R.id.etMessage);

        obbtSend.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openMainActivity();
            }
        });
    }

    public void openMainActivity(){
        String str = obetMessage.getText().toString();
        Intent obintent = new Intent(this, MainActivity.class);
        obintent.putExtra("var", str);
        this.startActivity(obintent);
    }
}

在第二个文件:

package com.example.toastexample;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

import org.w3c.dom.Text;

public class MainActivity2 extends AppCompatActivity {

    private TextView obtvMsg;

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

        Intent ob = getIntent();
        String msg = "";
        String s = ob.getStringExtra("var").toString();
        int t = Integer.parseInt(s.toString());
        for(int i=1;i<=t;i++)
            msg=msg + "Hello World! \n";
        Toast.makeText(this,msg,Toast.LENGTH_LONG).show();

        obtvMsg = (TextView)findViewById(R.id.tvMsg);
        obtvMsg.setText(ob.getStringExtra("var").toString());
    }
}

标签: javaandroid

解决方案


您没有启动 MainActivity2,而是在 openMainActivity() 中再次启动 MainActivity,

使用下面的代码启动 MainActivity2。

public void openMainActivity(){
        String str = obetMessage.getText().toString();
        Intent obintent = new Intent(this, MainActivity2.class);
        obintent.putExtra("var", str);
        this.startActivity(obintent);
}

推荐阅读