not sure why you're using the .Show() method, its best to use 
onCreateDialog for custom dialogs as well.

but either way, ASyncTasks dont run onPostExecute on the UI thread 
automatically, the run it on the thread the ASyncTask was created in.
To avoid your issue either add a Handler to run the onPostExecute code on 
or try and using  runOnUiThread 

On Thursday, November 22, 2012 3:37:44 PM UTC+2, Mr cool wrote:
>
> I have one problem with customized dialog box in android,i have created 
> the customized dialog using javainterface in android ,in my class 
> CustomizeDialog i have one thread do some process in back ground after that 
> i have set one imgae to this customized dialog i set the image in 
> OnPostExecute but i got the following error
>
>     android.view.ViewRootImpl$CalledFromWrongThreadException: Only the 
> original thread that created a view hierarchy can touch its views.
>  i know we can't access the main ui from another thread but we access the 
> main ui in OnPostExecuted in my case that also not working ,
> in my another class(main.class) i will call this class by
>  CustomizeDialog customizeDialog = new CustomizeDialog(mContext);
> customizeDialog.show();
>
> this my code which create dialog box
>    
>     public class CustomizeDialog extends Dialog implements OnClickListener 
> {
>     Button okButton;
>     ImageView img = null;
>     ImageView img2=null;
>     ImageView img3 = null;
>     ImageView img4= null;
>      Bitmap bm;
>     
>     public CustomizeDialog(Context context) {
>     super(context);
>     
>     img2 = (ImageView) findViewById(R.id.imageView1);
>     img3 = (ImageView) findViewById(R.id.imageView3);
>     img4 = (ImageView) findViewById(R.id.imageView4);
>      
>     WindowManager.LayoutParams params = getWindow().getAttributes();  
>     params.x = 30;  
>     params.height = 500;  
>     params.width = 500;  
>     params.y = 50;  
>     
>     this.getWindow().setAttributes(params);  
>     
>     setContentView(R.layout.test);
>     img = (ImageView) findViewById(R.id.imageView2);
>     
>     img.setBackgroundResource(R.drawable.sample);
>     
>     AnimationDrawable frameAnimation = (AnimationDrawable) 
> img.getBackground();
>     
>      //Start the animation (looped playback by default).
>      frameAnimation.start();
>     
>     new LongOperation1(context).execute("");
>      
>     }
>     
>     else
>     {
>     Toast toast = Toast.makeText(getContext(), "Erorr",
>     Toast.LENGTH_SHORT);
>     toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
>     toast.show();
>     } }
>     
>     private class LongOperation1 extends AsyncTask<String, String, String> 
> {
>     
>     @Override
>     protected String doInBackground(String... params) {
>          //here i do some process
>     return "Executed";
>     }
>     
>     @Override
>     protected void onPostExecute(String result) {
>           
>                      // here i do some process to get bm
>
>     img2.setImageBitmap(bm);
>     }
>     
>     @Override
>     protected void onPreExecute() {
>     }
>     @Override
>     protected void onProgressUpdate(String... values) {
>     }
>     }
>    
> do any have idea about how to do this
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to