현재 과제로 그림판 어플을 제작하고 있는데요. 옵션 메뉴에서 펜 옵션을누르면 다이얼로그가뜨면서 시크바로 펜의 굵기를

 

조절해서 확인버튼을 누르면 조절한 굵기가 적용되도록 구현하려고 합니다!

 

현재 다이얼로그 클래스를 따로 만들어서 메인 액티비티와 연결시키려고 하는데 잘 않되는 부분이 있어 질문 올립니다!

 

좀더 정확히 말씀드리면 조절한 굵기 값을 어떻게 메인 액티비티에서 사용할것인가 입니다!

 

여기저기서 검색하고 책보고 코딩한거라 좀 코드가 개념이 없더라도 양해부탁드립니다^^:;;;;;;;

 

먼저 다이얼로그 시크바 - 클래스입니다.

 

 public class PenSize extends Dialog {
 private OnDismissListener _listener;
 static int pensize;
 
 public PenSize(Context context) {
  super(context);
  
  // TODO Auto-generated constructor stub
 } @Override  
     public void onCreate(Bundle savedInstanceState ) {  
         super.onCreate(savedInstanceState ) ;  
         setContentView( R.layout.pensize ) ;  
         setTitle( "펜크기" ) ;  
           
         final TextView size = (TextView) findViewById( R.id.volume ) ;  
         SeekBar seek = (SeekBar) findViewById( R.id.seekbar ) ;  
         Button ok = (Button) findViewById(R.id.ok);
         
         seek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {    
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
     size.setText("펜 크기 : " + progress);
     pensize = progress;
    }    public void onStartTrackingTouch(SeekBar seekBar) {
    }    public void onStopTrackingTouch(SeekBar seekBar) {
    }
   });
         
         ok.setOnClickListener( new View.OnClickListener() {  
               
             @Override  
             public void onClick(View v) {  
                 // TODO Auto-generated method stub  
              
                 if( _listener == null ) {} else {  
                     _listener.onDismiss( PenSize.this ) ;  
                 }  
                 dismiss() ; 
             }  
         });  
     }         
     public void setOnDismissListener( OnDismissListener $listener ) {  
         _listener = $listener ;  
     }  
       
     public int getSize() {  
              return pensize ;  
          }     그리고 아래는 위 다이얼로그를 불러올 메인 액티비티 코드입니다. 이미 구현해놓은 부분이 많아서 다이얼로그를 불러오는 부분만 올려봅니다!
@Override  
        public void onDismiss(DialogInterface $dialog) {  
            // TODO Auto-generated method stub  
            PenSize dialog = (PenSize) $dialog ;  
            int size = dialog.getSize() ;  
            mPaint.setStrokeWidth(pen_size); 
        }  
@Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
     // 메뉴 선택에 따른 이벤트 처리
     switch(item.getItemId()){
     
     case 1:
      new PenSize(this)
      .show();
      break; 
     /*case 1:
      pen_size = 1;
      mPaint.setStrokeWidth(pen_size);
      break;*/
     case 2:
      pen_size = 3;
      mPaint.setStrokeWidth(pen_size);
      break;
     case 3:
      pen_size = 5;
      mPaint.setStrokeWidth(pen_size);
      break;
     case 4:
      pen_size = 10;
      mPaint.setStrokeWidth(pen_size);
      break;
     case 5:
      pen_size = 15;
      mPaint.setStrokeWidth(pen_size);
      break;
     case 6:
      pen_size = 20;
      mPaint.setStrokeWidth(pen_size);
      break;
     case 7:
      new ColorPickerDialog(this, this, mPaint.getColor()).show();
      break; 

 

케이스 1번부터 7번은 다이얼로그를 구현하면 없앨예정인 부분입니다!