2010-07-27 4 views
0
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 up an 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 will draw a circle 
    } 
    else 
    { 
     e.printStackTrace(); 
    } 
} 

원이 표시되지 ..... 하지만 난onActivityResult()의 uri 값을 onClick()에 전달할 수 있습니까?

mSurfaceHolder01.addCallback(EX10_04.this); 

옆)에 DrawO를 (둘 때 그것은 원을 그립니다!

내가 무엇을 할 shuld onActivityResult를 이벤트

에 원을 그리려면?

또는 uri를 onClick 함수에 전달할 수 있습니까?

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); 
........ 
....... 
} 

답변

0

1) 서페이스가 아직 만들어지지 않았기 때문에 원이 그려지지 않습니다. , null가 아닌 경우 확인) 단순히 필드 URI를 선언하고 (onActivityResult를과 온 클릭에 할당 URI를 전달하려면

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 to draw a circle 
    } 
    else 
    { 
     e.printStackTrace(); 
    } 
} 

2)를 사용하고

을 무효화이 같은 시도
관련 문제