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