2016-12-22 10 views
1

Мне удалось написать программу андроида, которая извлекает электронные письма из введенных слов, но затем программа не печатает все найденные письма в одном текстовом поле, предназначенном для нее. Вместо этого он печатает электронные письма один за другим на разных экранах, но по той же заданной активности ... (Например, если программа обнаружила 8 электронных писем, она будет печатать их один за другим на разных экранах с использованием той же активности, а не печать всех 8 писем сразу в определенном текстовом поле.)Печать всех извлеченных писем в одном текстовом поле и одно действие в разработке приложений для Android.

Вот код ...

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, который я использую, чтобы правильно получить коды.

Thanks y'all.

+0

Я задал глупый вопрос? или мой вопрос непонятен для кого-то, чтобы понять? Я мог бы перефразировать (просто сказать слово). Пожалуйста, ребята, ответьте на мой вопрос, чтобы помочь моей карьере кодирования, поскольку я новичок в программировании на java/android, и я бы с удовольствием учился. Спасибо – Nono

+0

Вы не отметили свой вопрос правильно. Я отправил исправление, которое правильно форматирует код и добавляет теги 'java' и' android'. Вы всегда должны облегчать людям, которые пытаются помочь вам, отправив код правильно отформатированным. Это значительно облегчает выявление ошибок, и если вы используете IDE, это не должно быть так много усилий :-) – oschlueter

ответ

0

мы должны снова работать вместе над этим. Попробуйте это решение и сообщите мне, если он делает то, что вам нужно. В противном случае укажите, как она работает в вашем пользовательском интерфейсе, и что именно должно быть иначе:

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, поэтому она должна быть доступна для вас.

+0

Ohhh !!!! Спасибо u !, Я сейчас работаю над этим, и мне кажется сочным, я дам вам знать, что случилось к тому времени ... – Nono

+0

Доброе утро, oschueter, я спал прошлой ночью, что o изучал ваш код. Но, изучая это сегодня утром, я понял, что .stream() должен выложить все значения слова в resultList и .collect() должен заложить строки как результат – Nono

+0

Извините, проигнорируйте это, я ошибочно опубликовал, когда я не готов. – Nono