android - Can i pass uri value from onActivityResult() to onClick()? -


public void oncreate(bundle savedinstancestate) {   super.oncreate(savedinstancestate);   setcontentview(r.layout.main);   msurfaceview01 = (surfaceview) findviewbyid(r.id.msurfaceview1);    msurfaceholder01 = msurfaceview01.getholder();   msurfaceholder01.addcallback(ex10_04.this);    mbutton02 = (button)findviewbyid(r.id.buttonobj);   mbutton02.setonclicklistener( new button.onclicklistener(){     public void onclick(view arg0) {         intent intent = new intent( intent.action_get_content );         intent.settype("audio/*");                   intent destintent = intent.createchooser( intent, "select audio" ); //pick audio file         startactivityforresult( destintent, 0 );     }   });  }  protected void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data);  if ( resultcode == result_ok ) {      uri uri = data.getdata();     if( uri != null )     {         drawo();//it draw circle     }     else     {       e.printstacktrace();     } } 

the circle not show..... when put drawo() next to

  msurfaceholder01.addcallback(ex10_04.this); 

it draw circle !

if want draw circle in onactivityresult event

what shuld ?

or if can pass uri onclick function ?

public void drawo() {  canvas mcanvas01 = msurfaceholder01.lockcanvas(null); mcanvas01.drawcolor(getresources().getcolor(r.drawable.white));  paint mpaint01 = new paint(); mpaint01.setstyle(paint.style.fill); mpaint01.setcolor(getresources().getcolor(r.drawable.red)); mpaint01.setstrokewidth(1.0f); ........ ....... } 

1) circle not drawn because surface not created yet. try this:

    boolean needdrawing = false;      public void onresume() {        if (needdrawing) {            draw0();            needdrawing = false;        }        ...     }  protected void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data);  if ( resultcode == result_ok ) {      uri uri = data.getdata();     if( uri != null )     {        needdrawing = true;//it asks draw circle     }     else     {       e.printstacktrace();     } } 

2) pass uri declare field uri , assign in onactivityresult , in onclick() check if not null, use , invalidate it


Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -