본문 바로가기

자료

동적으로 객채 생성후 각각에 이벤트 주기~!


버튼 클릭으로 EditText를 추가 한다

그리고 추가된 각각의 EditText에 이벤트를 걸어준다.

가끔 선택이 안되는 버그가 있다 이유를 모르겠다.

//객체 추가 생성 메소드
 public void btnTextViewAdd(View v) {
  incrementID++;
  addEditText = new EditText(PhotoUpload.this);
  addEditText.setText("내용 입력 하는 곳");
  addEditText.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
  addEditText.setPadding(150, 150, 50, 10);
  addEditText.setBackgroundColor(Color.TRANSPARENT);
  addEditText.setId(incrementID);
  addEditTextList.add(addEditText);
  lytCropMain.addView(addEditTextList.get(incrementID));
  int j=0;
  for(int i=-1;i< incrementID; i++){
   j = i;
   j++;
   addEditTextList.get(j).setOnLongClickListener(mLongClickListener);
   addEditTextList.get(j).setOnTouchListener(mTouchListener);
  }   
 }

 View.OnLongClickListener mLongClickListener = new View.OnLongClickListener() {
  public boolean onLongClick(View v) {
   //이동시 팝업 실행 안함~!
   if(MotionEvent.ACTION_MOVE != eventaction){
    Intent intent = new Intent(PhotoUpload.this, PopSetFont.class);
    startActivityForResult(intent, EDIT_TEXT_RESULT);
   }
   Log.i("LONG1", "longclick");
   return true;
  }
 };
 
 View.OnTouchListener mTouchListener = new View.OnTouchListener() {
  @Override
  public boolean onTouch(View v, MotionEvent event) {
   int X = (int) event.getX();
   int Y = (int) event.getY();
   eventaction = event.getAction();
   switch (eventaction) {
    case MotionEvent.ACTION_UP :
     Log.i("A1", "UP" + X + "," + Y+","+v.getId());
     break;
    case MotionEvent.ACTION_MOVE :
     Log.i("B1", "MOVE" + X + "," + Y+","+v.getId());
//     addEditText.setPadding(X-50, Y, 50, 10);
     addEditTextList.get(selectID).setPadding(X-50, Y, 50, 10);
     break;
    case MotionEvent.ACTION_DOWN :
     selectID = v.getId();//이게 중요했다
     Log.i("C1", "DOWN" + X + "," + Y+","+v.getId());
     break;
   }
   return false;
  }
 };