从另一个活动中获取TextView的值

问题描述 投票:0回答:1

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

我正在设置联系人电子邮件活动,我可以很好地运行它,但是我正在努力从TextView中提取用户名并将其合并到电子邮件中。这是联系活动中的代码...

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 protected]";
        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();
    }
}

其他活动上的TextView称为“ tvUser”。

我已经解决了这个问题,并设法在一封显示如下内容的电子邮件中得到了结果...

来自:null然后消息键入

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

java android android-studio javamail
1个回答
0
投票

您应该通过导致新活动的意图传递字符串。

活动A:

Intent intent = new Intent(this@MainActivity, NewActivity.class);
intent.putExtra("key", yourString);
startActivity(intent);

活动B:

getIntent().getStringExtra("key");

如果两个活动都不相关,则应将该字符串保存在共享的首选项中,以便在需要的地方使用它。

© www.soinside.com 2019 - 2024. All rights reserved.