Difference between revisions of "Progress Dialog and Threads"
From John Freier
m (moved ProgressDialog to Progress Dialog and Threads) |
|||
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | These are nice to use when you need to create a "waiting..." dialog. For example when you make a call to the internet, you would use one, so the user does not have to wait. | ||
+ | |||
+ | One of the issues I ran across was accessing class variables. After a lot of research, I figured out, that you can access variable through a class Handler. You pass variable to the handler through the messages. | ||
+ | |||
+ | Example: | ||
+ | |||
+ | Create a private class variable. | ||
private ProgressDialog dialog; | private ProgressDialog dialog; | ||
+ | This is the handler so that you can access class variables. example: text boxes, images... | ||
private Handler handlerRefresh = new Handler() | private Handler handlerRefresh = new Handler() | ||
{ | { | ||
Line 7: | Line 15: | ||
{ | { | ||
Bundle resBundle = (Bundle) msg.obj; | Bundle resBundle = (Bundle) msg.obj; | ||
− | String | + | String name= resBundle.getString("key"); |
} | } | ||
} | } | ||
− | + | This is the thread creation, it will show the dialog and process in the background. | |
− | dialog = ProgressDialog.show(CurrentActivity.this, ""," | + | dialog = ProgressDialog.show(CurrentActivity.this, "","Please wait...", true); |
new Thread(new Runnable() | new Thread(new Runnable() | ||
{ | { | ||
public void run() | public void run() | ||
{ | { | ||
− | + | // Threaded process... | |
+ | String name = "John"; | ||
Message myMessage=new Message(); | Message myMessage=new Message(); | ||
Bundle resBundle = new Bundle(); | Bundle resBundle = new Bundle(); | ||
− | resBundle.putString( | + | resBundle.putString("key", name); |
myMessage.obj=resBundle; | myMessage.obj=resBundle; | ||
− | + | handlerRefresh.sendMessage(myMessage); | |
dialog.dismiss(); | dialog.dismiss(); | ||
} | } | ||
}).start(); | }).start(); |
Latest revision as of 09:19, 27 January 2011
These are nice to use when you need to create a "waiting..." dialog. For example when you make a call to the internet, you would use one, so the user does not have to wait.
One of the issues I ran across was accessing class variables. After a lot of research, I figured out, that you can access variable through a class Handler. You pass variable to the handler through the messages.
Example:
Create a private class variable.
private ProgressDialog dialog;
This is the handler so that you can access class variables. example: text boxes, images...
private Handler handlerRefresh = new Handler() { @Override public void handleMessage(Message msg) { Bundle resBundle = (Bundle) msg.obj; String name= resBundle.getString("key"); } }
This is the thread creation, it will show the dialog and process in the background.
dialog = ProgressDialog.show(CurrentActivity.this, "","Please wait...", true); new Thread(new Runnable() { public void run() { // Threaded process... String name = "John"; Message myMessage=new Message(); Bundle resBundle = new Bundle(); resBundle.putString("key", name); myMessage.obj=resBundle; handlerRefresh.sendMessage(myMessage); dialog.dismiss(); } }).start();