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

Java 在android应用程序开发中,在一个文本字段和一个活动中打印所有提取的电子邮件,java,android,socrata,Java,Android,Socrata,我成功地编写了一个android程序,该程序从输入的单词中提取电子邮件,但该程序没有将找到的所有电子邮件打印到指定的文本字段中。相反,它在不同的屏幕上,但在相同的设计活动上,一个接一个地打印电子邮件。。。 (例如,如果程序发现8封电子邮件,它将使用相同的活动在不同的屏幕上逐个打印,而不是在特定的文本字段中一次性打印所有8封电子邮件。) 这是代码… import android.app.*; import android.os.*; import android.view.*; import an

我成功地编写了一个android程序,该程序从输入的单词中提取电子邮件,但该程序没有将找到的所有电子邮件打印到指定的文本字段中。相反,它在不同的屏幕上,但在相同的设计活动上,一个接一个地打印电子邮件。。。 (例如,如果程序发现8封电子邮件,它将使用相同的活动在不同的屏幕上逐个打印,而不是在特定的文本字段中一次性打印所有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.
        }
    }
}
请原谅,由于我使用的是小型安卓手机,代码可能没有按应有的方式排列


谢谢大家。

我们必须再次合作解决这个问题。请尝试此解决方案,并让我知道它是否符合您的需要。否则,请指定它在您的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);
    }
}
public void onextractbutton单击(查看){
EditText mainEditText1=(EditText)findViewById(R.id.mainEditText1);
字符串txt=mainEditText1.getText().toString();
String[]words=txt.split(\\s+);
List resultList=new ArrayList();
for(字符串字:字){
if(word.contains(“@”)){
//这是您为每条消息创建新“屏幕”的地方
//Intent-Intent=new.Intent(这是SubActivity.class);
//意向。额外(“字2”,字);
//星触觉(意向);
//相反,如果单词匹配,我们会将其存储到列表中:
结果列表。添加(word);
}
如果(!txt.contains(“@”)){
Toast.makeText(MainActivity.this,“文档中找不到电子邮件地址!”,Toast.LENGTH\u LONG.show();
}
//如何将所有发现的电子邮件打印在一个文本字段和一个活动中。
//创建一个字符串,以您喜欢的方式显示电子邮件,
//例如,用换行符分隔:
字符串结果=TextUtils.join(“\n”,resultList);
mainEditText1.setText(结果);
}
}

这将使用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);
    }
}
public void onextractbutton单击(查看){
EditText mainEditText1=(EditText)findViewById(R.id.mainEditText1);
字符串txt=mainEditText1.getText().toString();
String[]words=txt.split(\\s+);
List resultList=new ArrayList();
for(字符串字:字){
if(word.contains(“@”)){
//这是您为每条消息创建新“屏幕”的地方
//Intent-Intent=new.Intent(这是SubActivity.class);
//意向。额外(“字2”,字);
//星触觉(意向);
//相反,如果单词匹配,我们会将其存储到列表中:
结果列表。添加(word);
}
如果(!txt.contains(“@”)){
Toast.makeText(MainActivity.this,“文档中找不到电子邮件地址!”,Toast.LENGTH\u LONG.show();
}
//如何将所有发现的电子邮件打印在一个文本字段和一个活动中。
//创建一个字符串,以您喜欢的方式显示电子邮件,
//例如,用换行符分隔:
字符串结果=TextUtils.join(“\n”,resultList);
mainEditText1.setText(结果);
}
}

它使用的是Android的一部分,所以你应该可以使用它。

我问了一个愚蠢的问题吗?还是我的问题不清楚,没有人能理解?我可以重新措辞(只要说一句话)。请各位回答我的问题,以帮助我的编码生涯,因为我是java/android编程的新手,我很想学习。谢谢你没有正确地标记你的问题。我提交了一个编辑,它正确地格式化了代码,并添加了
java
android
标记。您应该始终通过提交格式正确的代码来帮助那些试图帮助您的人。它使发现错误变得容易得多,如果您使用的是IDE,那么就不需要太多努力:-)我问了一个愚蠢的问题吗?还是我的问题不清楚,没有人能理解?我可以重新措辞(只要说一句话)。请各位回答我的问题,以帮助我的编码生涯,因为我是java/android编程的新手,我很想学习。谢谢你没有正确地标记你的问题。我提交了一个编辑,它正确地格式化了代码,并添加了
java
android
标记。您应该始终通过提交格式正确的代码来帮助那些试图帮助您的人。它使发现错误变得容易得多,如果您使用的是IDE,那么就不需要太多的努力:-)哦!!!!谢谢你!,我现在正在做这件事,看起来很有趣,我会让你知道发生了什么事…早上好,oschueter,我昨晚睡了一觉,o正在研究你的代码。但是今天早上查看时,我明白了.stream()应该在resultList中列出word的所有值,.collect()应该列出resultGood morning oschueter,我知道result变量应该包含数组resultList,但是我在尝试代码时收到错误…String result=resultList.stream().collect(Collector.joining(“\n”);.stream()处的错误将其声明为“java.util.list”的未知方法,收集器处的错误将其声明为未知实体。最后我准备了这样的代码。。。String result=resultList.stream().collect(Collector.joining(“\n”));意向意向=新意向(此,SubActivity.class);intent.putExtra(“word2”,reI),我认为你在使用Java 7?我将更新没有Java 8功能的解决方案。我更新了答案,以使用Android的TextUtils代替