Android :: Calling TextView.setText() Periodically Causes UI To Jerk
Sep 28, 2010
I'm coding an audio player where a thread updates the TextView representing the track's elapsed time, every 250 milliseconds. The display looks like this:
1:30/2:30<-----Progress Bar----->
TextView 1 is 1:30/ and TextView 2 is 2:30.
Both are set to wrap_content for width.
What happens is that on every 250 millisecond cycle, the thread checks the current time and updates TextView 1. For this brief moment, TextView 2 and the progress bar get pushed momentarily to the right by about 2-4 pixels. Then they come back to place until the same thing happens during the next cycle. I don't know what's happening. There are no trailing space characters, etc and everything should, theoretically, be working smoothly but it's not.
View 1 Replies
Sep 13, 2010
I'm attempting Google University Android lab1 you are asked to change a TextView's text content according to the value passed via the Intent from another activity.
I tried out the rest of my code but...why does my app force close when I add the "tv.settext(...) line"?
CODE:...................
View 1 Replies
View Related
Dec 28, 2009
On Android 1.5, using the Allocation Tracker I see that every time I call TextView.setText() with a StringBuilder as first argument, a String gets allocated from the following call stack (first line is last call):
java.lang.AbstractStringBuilder toString java.lang.StringBuilder toString android.text.TextUtils stringOrSpannedString android.widget.TextView setText
I tried specifying the buffer type with setText(strBuilder, TextView.BufferType.NORMAL) but it doesn't change anything.
Is there a way to avoid this allocation?
View 2 Replies
View Related
Jan 25, 2010
I have an android application that I am supporting and after calling one of the activities numerous time, it throws a stackoverflowerror when trying to get the extras from the intent. Here is the the stack trace from when it crashes. Any ideas as to why after calling the activity at least 4 times the next time throws StackOverflowError when getting the extras from the intent?
The code used to build the intent is and contains String, String, boolean, Object:
CODE:....................
And the code that is throwing the StackOverflowError is:
CODE:.........................
View 2 Replies
View Related
Feb 11, 2013
How I can change Textview periodically?I want to check a web page for a change.
View 1 Replies
View Related
Jun 24, 2010
I've got this odd problem which is happening on 1.6, 2.2, and a MyTouch 3G Slide (which is API #7, and listed as "2.1-Update1" in the Android Device Chooser). If anyone can explain what I'm doing wrong & how to fix it (or possibly confirm that this is an Android bug)The basic idea for my app is to make a stopwatch-sort of thing, in that the user can tap a button to start a timer, then tap it again to stop (pause) the timer; further taps alternate between resuming the timer and pausing the timer.I've got a top-level ScrollView which contains a RelativelLayout, which contains a bunch of widgets. The first widget is a HUGE button (so that it's easy to press), which pushes all my other widgets below the bottom of the screen. This is intentional, as I want to rely on the ScrollView (and an on-screen reminder to the user) to make the rest of the input options available.I've got a simple state-machine type setup, where mState is the current mode (STATE_ TIMER_ NOT_ STARTED before the user presses any buttons, RUNNING after the first press, and then PAUSED after the second, back to RUNNING after the third, etc, etc).
All this works great EXCEPT that when the timer is running, and the user presses the start/stop/resume button again, the ScrollView will scroll down a ways. I am NOT issuing this command (I don't even have a reference to ScrollView object), and I'm not sure why it's doing this.
REPRO:Compile + run the below samples. When the app starts, press the 'Start Timing' button. Use your thumb (or the mouse) to touch-drag the screen upwards (so you can see the RatingBar), then drag it back downwards (so the button is again completely on-screen). Tap the button (which now reads 'PauseTiming') again, and it'll jump down a bit. It should NOT be jumping/scrolling down, since there's no statement (that I can see) that tells it to scroll down. As near as I can tell, it's the setText that causes the scrolling ( when I comment those lines out, no scrolling occurs).WHAT I'M ASKING FOR:if I'm doing something dumb & you could point out what it is, I'd really appreciate it! I wonder if 'touch mode' might have something to do with this, since it does NOT appear to happen (in the emulator) when I use the mouse's scroll wheel to move the panel upwards (i.e.,instead of the simulated finger-dragging). I can't find a whole lot on touch-mode, and nothing specific on focus/selection in touch mode within a ScrollView if you can confirm that this error occurs for you too, that would be ok, too (since misery loves company.AHEM I mean, since it might help confirm that it's not just me MyTestApp.java package bug.android.scrollview;
import android.app.Activity;
import android.os.Bundle;
import android.text.format.Time;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
public class MyTestApp extends Activity {
public final static int STATE_TIMER_NOT_STARTED = 1;
public final static int STATE_TIMER_RUNNING = 2;
public final static int STATE_TIMER_PAUSED = 3;
private int mState;
Time t = new Time();
private Time data = new Time();
private Button btnStartStopResume;
private TextView lblSpacer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new_time_entry);
btnStartStopResume = (Button) findViewById(R.id.btnStartStopResume);
// Set the button's size so that the other info will also be visible
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE))
.getDefaultDisplay();
// This is such a hack, but the windowScroller doesn't appear to
// have a height at this point in the lifecycle (nor in 'onResume' :( )
btnStartStopResume.setHeight(display.getHeight() - 200);
lblSpacer = (TextView) findViewById(R.id.lblSpacer);
reset();
} public void doStartStopResume(View v) {
if (mState == MyTestApp.STATE_TIMER_NOT_STARTED) {
mState = MyTestApp.STATE_TIMER_RUNNING;
data.setToNow();
} else if (mState == MyTestApp.STATE_TIMER_RUNNING) {
mState = MyTestApp.STATE_TIMER_PAUSED;
String s = getString(R.string.add_scroll_down_to_add);
lblSpacer.setText(s);
} else if (mState == MyTestApp.STATE_TIMER_PAUSED) {
mState = MyTestApp.STATE_TIMER_RUNNING;
public void doReset(View v) {
}public void doNewRunClick(View v) {
public void doAddTiming(View v) {
public void reset() {
mState = STATE_TIMER_NOT_STARTED;
new_time_entry.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/windowScroller"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
> <RelativeLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
> <Button
android:id="@+id/btnStartStopResume"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dip"
android:text="Start Timing"
android:textSize="40dp"
android:height="290dp"
android:onClick="doStartStopResume" />
<TextView
android:id="@+id/lblSpacer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btnStartStopResume"
android:layout_centerHorizontal="true"
android:text="@string/add_scroll_down_for_more" />
<TextView
android:id="@+id/lblTimeStartLabel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/lblSpacer"
android:layout_alignParentLeft="true"
android:clickable="true"
android:onClick="adjustStartTime"
android:text="Start of this run:"
android:textSize="8dp" />
<TextView
android:id="@+id/lblTimeStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/lblTimeStartLabel"
android:layout_alignParentLeft="true"
android:clickable="true"
android:onClick="adjustStartTime"
android:text="--:--:-- --"
android:textColor="#FFFFFF"
android:textSize="26dp" />
<TextView
android:id="@+id/lblElapsedLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/lblSpacer"
android:layout_alignRight="@id/lblSpacer"
android:layout_marginRight="5dp"
android:text="Elapsed Time:"
android:textSize="8dp" />
<TextView
android:id="@+id/lblTimeElapsed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/lblElapsedLabel"
android:layout_alignRight="@id/lblSpacer"
android:layout_marginRight="5dp"
android:textColor="#99ff66"
android:text="-- m -- sec"
android:textSize="26dp"
android:layout_marginBottom="10dip"/>
<CheckBox
android:id="@+id/chkNewRun"
android:onClick="doNewRunClick"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/lblTimeElapsed"
android:text="This is a new run of timings"
android:layout_marginBottom="10dip" />
<TextView
android:id="@+id/lblIntensity"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Intensity (1 = none 5 = max)"
android:layout_below="@id/chkNewRun" />
<RatingBar
android:id="@+id/rbIntensity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/lblIntensity"
android:numStars="5"
android:rating="2"
android:layout_marginBottom="5dip" />
<TextView
android:id="@+id/lblNotes"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Notes:"
android:layout_below="@id/rbIntensity" />
<EditText
android:id="@+id/txtNotes"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/lblNotes"
android:layout_marginBottom="10dip" />
<Button
android:id="@+id/btnReset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/txtNotes"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:text="Reset"
android:onClick="doReset" />
<Button
android:id="@+id/btnOk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/txtNotes"
android:layout_toRightOf="@id/btnReset"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:text="Add Timing To List"
android:onClick="doAddTiming" />
</RelativeLayout>
</ScrollView>
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Timer</string>
<string name="dlg_edit_timing_title">Edit A Timing</string>
<string name="add_scroll_down_for_more">< Scroll down for more options! ></string>
<string name="add_scroll_down_to_add">< Scroll down to save this timing! ></string>
<string name="start_timing">Start Timing
</string>
<string name="stop_timing">Pause Timing
</string>
<string name="resume_timing">Resume Timing
</string>
</resources>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="bug.android.scrollview"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MyTestApp"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="5" />
</manifest>
UPDATE 1: Adding if( btnStartStopResume.isInTouchMode() )
Toast.makeText(this, "TOUCH MODE", 2000);
elseToast.makeText(this, "NOT touch mode", 2000);
then setting breakpoints in the debugger confirms that the button is always in touch mode (regardless of whether I finger-drag the panel up/down, or mouse-wheel it up/down). So it's a combination of being in touch-mode AND finger-dragging the panel after the 2nd button-press (i.e, when the app is in 'stopped/paused timing' mode) that's causing the odd extra-timing in subsequent pauses.
UPDATE 2:
I just noticed that it's scrolling down to the EditText, and no further. It looks like when you move the panel down the EditText gets the selection, and after the click event the ScrollView scrolls back to the thing that has the selection. Seems to explain why the mouse-wheel approach doesn't have this problem (it moves the selection/focus back up to the button).
View 1 Replies
View Related
Jun 2, 2009
I upgraded my project from 1.0 to 1.5.
I found the function setText is no longer working in 1.5. Does any one knows why?
Following is my code:.................
the last line will let the simulator throw error message: THe application com.application.easyblog has stopped unexpectedly. Please try again.
( it is working in 1.0)
View 6 Replies
View Related
Nov 13, 2010
I have an android app I am just experimenting things on and I cannot seem to figure out why my app force closes when I update a TextView via a while loop. When I comment out the updateText method it runs fine.
CODE:....................
View 3 Replies
View Related
Oct 5, 2010
In my app is the ability to read a file.
This works perfectly, but there's a problem.
No line breaks or whatever they are called get added when I append the file's contents to my big EditText, so this:code...
How can I stop this and make it appear in the EditText as it appears in the file?
View 1 Replies
View Related
Feb 25, 2013
I've searched using a couple of the above keywords and found nothing.Basically I have a layout with a few textview elements a few edittext elements and a few buttons. In the java any incorrect entries by the user in the edittext elements should change a textview element which acts as user instructions to prompt the user to make corrections, the problem is it actually changes one of the button texts. Here is the code for the layout (activity_main.xml):
Code:
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/button4"
android:layout_marginTop="26dp"
android:background="@color/yellow"
android:gravity="center_horizontal"
android:text="@string/hello_world"
android:textColor="@color/red" />
[code]..
I know this worked as intended when I only had buttons 1-3, but adding 4 and 5 seems to have started something odd, I can't see anything wrong so am guessing this is a stupid mistake on my part. For reference it is button4 which has it's text changed by the java code. My only thought was that this was something more complicated caused by relative layout and inheritence.
View 2 Replies
View Related
Nov 16, 2010
I want to do something like that. For example, I have a textview with String
Alibaba love Mary so muck. In that String alibaba and Mary have a event to open something but I can't know how to use event for Mary and Alibaba seperately
View 2 Replies
View Related
Jul 25, 2010
I have successfully been getting GPS data through the registerLocationListener() and onLocationChanged() methods. The only problem with this is that the speed reading of my app freezes if there is no more GPS data (e.g. when I go indoors, enter a tunnel, etc). The behavior I want for my app is that the user is somehow notified that the speed reading is probably not accurate due to a lack of fresh data (set speed to zero, blink the speed reading, etc). How can I do that? I though of checking periodically whether the GPS unit was detecting any satellites, but I'm not sure how to force periodic checks.
View 1 Replies
View Related
Sep 1, 2010
I am getting data from the server using AsyncTask. I need to update the data periodically.
View 3 Replies
View Related
May 26, 2010
I'm developing sort of a wireless scanner, so I need to scan every X seconds. I know I should use WifiManager and startScan() to get the networks and then register a receiver to receive the event once the scan has finished. However I'm having problems when trying to figure out how to scan periodically. It's more like a design problem. My solution so far has been to create a Service which takes care of the scanning, besides the main Activity.
I think this is correct. So, how could I tell this Service to scan every X seconds? I've thought it may have a Thread object, call its Scan method during tart_services() and then take it to sleep. Also I thought I could just get rid of the Service and run the Thread from the main Activity, but then I guess it would die whenever the Activity is not visible. None of then seem like a really good solution to me, and I think there must be an easier way to do this.
View 6 Replies
View Related
Jun 16, 2010
We have a very patchy wi-fi network here. The wi-fi router's pretty old and I tend to need to switch it off and on every couple of days. Is there an app I can use that will - perhaps in conjunction with Locale so it only runs when I'm in the office - periodically check if our wi-fi connection is up and running?
View 1 Replies
View Related
Dec 18, 2009
I currently use SMS Backup & Restore, but that has two drawbacks I see
-I have to manually initiate the backup
-It only stores and restores one file, so I have to overwrite and rename
I just lost my texts and only had a two day old backup. I'd love to see the same thing but that can do it with a timestamped file such as backup_2009-12-18-15-08.xml (pickable when restoring) and can run at a preset time each day or each half day.
View 1 Replies
View Related
Sep 13, 2010
I have one activity. OnCreate the activity gets the source (html) of a web page to a string and presents the result (after parsing it a bit) in a textview. I would like the activity to reload/refresh periodically to always present the latest information.
View 1 Replies
View Related
Dec 18, 2009
If I want to upload a text file containing some game stats to a web server for testing purpose, which approach is the best? Do I write a service along with my application and then upload the log file once it reaches a specific size? Or do I embed the logic into my application and then do it during idle times?
View 3 Replies
View Related
Feb 4, 2010
I never got this working in a straightforward manner. Sorry if I'm being a little vague. I'll try to elaborate on what I'm trying to do. I am trying to build a listview that grabs its data from a webservice. Once I initialize a listview, I want to keep polling the webserver periodically and update the contents of the listview. For this I am doing something like this:
public class SampleAutoUpdateList extends Activity {
//Autoupdate handler
private Handler handler = new Handler();
private Runnable updater = new Runnable() {
public void run() {
/*
* Update the list
*/..................................
View 1 Replies
View Related
Jul 19, 2010
I am building an indoor application which continuously scans the bluetooth dongles located at different locations in a place like a mall or library.As I move in the mall with android phone in my hand I should be able to get the nearest dongle which I can connect to(Stupid Idea but I want to do something else with this).For this I should be able to continuously scan for the bluetooth devices.
View 2 Replies
View Related
Aug 26, 2010
I have an app that needs to send a periodic heart beat to a server, but when the phone goes into standby mode the background heartbeat thread dies. Is there anyway to wake the phone from standby, send the heartbeat and then go back to sleep programmatically? I want to avoid using PARTIAL_WAKE_LOCK if possible.
View 1 Replies
View Related
Mar 29, 2010
i have a application that displays tasks and i created an option in the Settings menu that lets you choose in how many days all (Never, 10 days, 20 days or 30 days) these tasks should be automatically deleted. So when i open up the app there will be a method that will be called and check if theres any tasks to be deleted. I did that to challenge myself, but i'm hitting the wall with my head and i cant come up with something. So here i am in need of help! A little more information: i was trying to do something with java/android code, but from past searches i saw people dealing with it using SQL functions. Is it better?
View 4 Replies
View Related
Aug 31, 2010
I working on the app where I get the data from the server using rest call and add it to the view. I get all the initial data correctly. I use AsyncTask for doing it. Now I want to periodically (say 2 mins) fetch the new data from the server and add it to view.Periodically fetching data (polling) from the server in Android.
View 2 Replies
View Related
Jul 30, 2009
How to create a service that will post messages to an activity periodically using timer?
View 2 Replies
View Related
Sep 4, 2010
I have a Desire on Vodafone in the UK. Upgraded to Froyo using the official method the other week. Not sure if it is since then, but it's happened a lot the last few days, and it definitely didn't do this before the upgrade, but it seems that my Desire is now turning on GPS every few minutes - the icon flashes away in the notification bar. I have no idea why. Any idea what's happening, and how I can work out what app is causing this?
View 4 Replies
View Related
Jul 14, 2010
I have a ListView that contains an Image on the left of two vertically-oriented TextViews using a RelativeLayout. When both TextViews have text it looks fine. Sometimes the TextView on the bottom won't have any text, and the problem is that the entire layout is several pixels above where it should be because it still reserves that space for text when there isn't any making the entire list have annoying blank gaps. I remember seeing an example of where someone made the layout not reserve the space, but I can't remember how he did it.
View 2 Replies
View Related
Jan 4, 2014
I'm trying to create a textView in the parent activity onActivityResult but the textView does not appear. There is an ImageView that takes up the whole parent activity. I can create a textView and place it, and it should go on top of the imageView?
In the parent class:
[HIGH]private void addClothes(int menuId) {
Intent chooseClothesIntent = new Intent(this, ChooseClothesActivity.class);
chooseClothesIntent.putExtra("menuId", menuId);
startActivityForResult(chooseClothesIntent, 1);
}[/HIGH]
[Code]...
then in my new activity:
[HIGH]@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
try {
ClothingItem ci = mListContents.get(position);
String imagePath = ci.getImagePath();
[Code]...
View 2 Replies
View Related
May 4, 2013
In my Android application I have to display article title on corresponding category.
I wish to display the output in following format:
[HIGH]Languages Programming --- Category name on Horizontal listview[/HIGH]
If I have to click Languages which means getting the article title for that selected category alone and displaying on Horizontal listview.
[HIGH]Languages Programming
Tamil Engilsh Hindi Telugu[/HIGH]
If I have to click Programming means need to display the :
[HIGH]Languages Programming
Java C C++[/HIGH]
Now my current status is :
I have to run the app and click Languages which means getting the output is :[code]....
View 2 Replies
View Related
Aug 24, 2010
It seems like every couple of months I lose my address book, subsequently I cant answer messages unless I can recognise the number and I end up having to wipe the fone and start again - which means downloading all the Apps again - its done it once again today, any ideas of a way round - I would prefer not to wipe as I lose my msg inbox etc
View 6 Replies
View Related
Aug 5, 2010
I have two email accounts linked to the Droid X. The primary is set to receive new emails every 15mins. Is this option available to secondary email accounts? My gmail account is hooked up to the Droid but it will not tell me if there are any messages without hitting the refresh button. Is there a way to receive emails periodically? I am having the same issue with sending. I can send an email on my gmail but it wont send until i hit refresh.
View 7 Replies
View Related