Note that there are some explanatory texts on larger screens.

plurals
  1. POTextView output in real time
    primarykey
    data
    text
    <p>Hello I have a android app which basically has a EditText to get userinput, TextView to output the processed data and a button to excute everything. Once the user click a button and new thread is made and the following two loops are running and appending the new output each time to the TextView. However what the problem the TextView output isnt going to the TextView in real time when the loops are finished its displays all the outputted data at once, help please .</p> <pre><code>package com.example.assignment2_android; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.LinkedList; import java.util.Queue; import java.util.Random; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.content.Intent; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class station extends Activity { Button run, clear, home; EditText userinput; TextView useroutput; //LinkedList Customer Queue created here. public static Queue&lt;String&gt; line = new LinkedList&lt;String&gt; (); private static String time; //time variable. private static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); //DateFormat variable. private int intervals; private int cashiers; private int processing_time; Thread arrival; Handler handler, handlerr, handlerrr; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.station); userinput = (EditText)findViewById(R.id.s_userinput); useroutput = (TextView)findViewById(R.id.s_useroutput); clear = (Button)findViewById(R.id.button_clear); clear.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { line.clear(); userinput.setText("Line Cleared"); useroutput.setText(""); System.out.println("cleared"); } }); home = (Button)findViewById(R.id.button_home); home.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { Intent a = new Intent(station.this, MainActivity.class); startActivity(a); } }); } public void startProgress(View view) { handler = new Handler(); Thread arrival = new Thread(); { useroutput.append("CUSTOMERS ARE COMING !!!! !!!!" + "\n" + "\n");; //Array of all the customer that will enter the queue. String list[] = {"Naqi", "Monty", "Mohin", "Yasmin", "Maighjoo", "Ashish", "Paal", "Kevin", "Ruhail", "Tony"}; //2nd ArrayList which customer are added to and removed later on so no duplicates arise. ArrayList&lt;String&gt; customer = new ArrayList&lt;String&gt;(Arrays.asList(list)); int array_customer_list = list.length; //Recording the number of customers in the array. //While statement containing for loop add customers to the empty LinkedList object. while (line.isEmpty()) { for (int x = 0; x &lt; array_customer_list; x++ ) { try { Thread.sleep(ran_interval() * 1000); //Sleep method to hold the arrival time by 1-2 seconds. int cus = (int) (Math.random() * customer.size()); //Random customer is picked here. String new_cus = customer.get(cus); //New customer object is created ere. line.add(new_cus); //Customer objects are added to the empty LinkedList queue. customer.remove(cus); //For loop statement to outputting the queue. for (String s : line) { useroutput.append("[" + s.toString() + " " + "]" + "\n");; //Outputting each customer and using the ".name" method so customers are readable. } //Outputting the whole queue and stating who has joined the queue. useroutput.append("\n" + "The queue has " + line.size() + " customers so far" + "\n" + new_cus.toString() + " Has Joined the Queue " + " &lt;=== WAITING" + "\n" + "\n"); } catch(Exception a) //ERROR handler for sleep method. { System.out.println("Intervals error: " + a); //Outputting the ERROR message. System.exit(0); //If ERROR found exit system. } } } userinput.append("\n"); useroutput.append("CUSTOMERS ARE WAITING !!!! !!!!" + "\n" + "\n"); useroutput.append("Processing START !!!!" + "\n" + "\n"); while (!line.isEmpty()) //While statement with for loop to remove each customer from LinkedList queue. { try { String cus = line.remove(); //Method to remove customer from LinkedList queue. String time = getTime(); Thread.sleep((processing_time() * 1000) / cashiers); //Sleep method to hold the processing by 1-3 seconds. for (String s : line) { useroutput.append("[" + s.toString() + " " + "]" + "\n"); //Outputting each customer and using the ".name" method so customers are readable. } //Outputting the whole queue and stating who has joined the queue. useroutput.append("\n" + "The queue has " + line.size() + " customers left" + "\n" + cus.toString()+ " waited for " + time + " &lt;=== SERVED" + "\n" + "\n"); } catch(Exception a) //ERROR handler for sleep method. { System.out.println("Cashiers_wait error: " + a); //Outputting the ERROR message. System.exit(0); //If ERROR found exit system. } } useroutput.append("Processing FINISHED !!!!" + "\n"); System.out.println("working" + "\n" + "random arrival time is :" + intervals + "\n" + "random processing time is :" + processing_time); }; arrival.start(); }; public void append_output(final String text) { runOnUiThread(new Runnable() { @Override public void run() { useroutput.append(text); } }); } static String getTime() //Time Constructor { Calendar cal = Calendar.getInstance(); time = dateFormat.format(cal.getTime()); //Getting the current system time. return time; //Return time. } public int ran_interval() { Random rand = new Random(); //Random object created here. int interval = this.intervals = rand.nextInt(2) + 1; //Random number between 1-2 is generated for customer arrival here. return interval; } public int processing_time() { Random ran = new Random(); //Random object created here. int time = this.processing_time = ran.nextInt(4) + 1; //Random number between 1-3 is generated for customer arrival here. return time; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload