从另一个 activity 中的 TextView 中获取值

Grabbing a value from a TextView in another activity

我想从另一个 activity 上的 TextView 中获取值。 TextView 实际上是从数据库中提取一个值并显示登录的用户名。

我正在设置一个联系电子邮件 activity,我的工作正常,但我正在努力从 TextView 中提取用户名并将其合并到电子邮件中。这是来自联系人 activity...

的代码
package com.example.empireuslforms;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


public class GeneralEmailActivity extends AppCompatActivity {

    public EditText mEmailText;
    public Button mSendEmail;
    public TextView mUserName;

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

        mUserName = (TextView)findViewById(R.id.tvUser);
        mEmailText = (EditText)findViewById(R.id.etEmailText);
        mSendEmail = (Button)findViewById(R.id.btnEmailSend);
        mSendEmail.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                sendMail();
            }
        });


    }

    private void sendMail() {

        String user_name = mUserName.getText().toString();
        String mail = "email@email.com";
        String message = "From: " + user_name + "\n" + mEmailText.getText().toString();
        String subject = "Empire Forms App Contact";

        //Send Email
        JavaMailAPI javaMailAPI = new JavaMailAPI(this, mail, subject, message);

        javaMailAPI.execute();
    }
}

另一个 activity 上的 TextView 名为 "tvUser"。

我试过这个,并设法在电子邮件中得到一个结果,上面写着...

发件人:空 然后输入的消息

但是您在上面看到的代码只是在单击发送电子邮件按钮时使应用程序崩溃。

您应该通过指向新 activity.

的意图传递字符串

Activity一个:

Intent intent = new Intent(this@MainActivity, NewActivity.class);
intent.putExtra("key", yourString); //or textView.getText().toString();
startActivity(intent);

Activity B onCreate:

getIntent().getStringExtra("key");

如果这两个活动在意图上没有关联,您应该考虑将该字符串保存在共享首选项中,以便在您需要的任何地方使用它。