在一个文本字段中打印所有提取的电子邮件,在 android 应用程序开发中打印一个 activity

Printing all extracted emails in one text field and one activity in android app development

我成功地编写了一个 android 程序,该程序从输入的单词中提取电子邮件,但是该程序并没有将它找到的所有电子邮件打印到为其指定的文本字段中。相反,它在不同的屏幕上一个接一个地打印电子邮件,但在相同的设计 activity... (例如;如果程序找到 8 封电子邮件,它会使用相同的 activity 在不同的屏幕上一个接一个地打印它们,而不是在特定的文本字段中一次打印所有 8 封电子邮件。)

这是代码...

import android.app.*;
import android.os.*;
import android.view.*;
import android.content.*;
import android.widget.*;
import java.util.*;

public class MainActivity.
extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.main);
    }

    public void
    OnExtractButtonClick(View view) {

        EditText.mainEditText1 = (EditText) findViewById(R.id.mainEditText1);
        String txt = mainEditText1.getText().toString();
        String[] words = txt.split("\s+");


        for (String word: words) {
            if (word.contains("@")) {
                Intent intent = new.Intent(this, SubActivity.class);
                intent.putExtra("word2", word);
                startActivity(intent);
            }

            if (!txt.contains("@")) {
                Toast.makeText(MainActivity.this, "No email. address found in the document!", Toast.LENGTH_LONG).show();
            }

            //How do i get all the emails found printed in one text field and on one activity.
        }
    }
}

请原谅,由于我用来获取正确代码的 android 手机很小,所以代码可能没有按应有的方式排列。

谢谢大家。

我们必须再次合作解决这个问题。请尝试此解决方案,让我知道它是否满足您的需求。否则,请说明它在您的 UI 中的表现以及具体需要不同的地方:

public void OnExtractButtonClick(View view) {

    EditText mainEditText1 = (EditText) findViewById(R.id.mainEditText1);
    String txt = mainEditText1.getText().toString();
    String[] words = txt.split("\s+");

    List<String> resultList = new ArrayList<>();

    for (String word: words) {
        if (word.contains("@")) {
            // this is where you're creating a new "screen" per message
            // Intent intent = new.Intent(this, SubActivity.class);
            // intent.putExtra("word2", word);
            // startActivity(intent);

            // instead we store a word into a list if it's a match:
            resultList.add(word);
        }

        if (!txt.contains("@")) {
            Toast.makeText(MainActivity.this, "No email. address found in the document!", Toast.LENGTH_LONG).show();
        }

        //How do i get all the emails found printed in one text field and on one activity.

        // create a String that displays the emails in a way you like,
        // e.g. separated by newlines:
        String result = TextUtils.join("\n", resultList);
        mainEditText1.setText(result);
    }
}

这使用 TextUtils,它是 Android 的一部分,因此您应该可以使用它。