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
Post a Comment