2017-01-17 13 views
1

두 개의 동적 체크 상자 하나는 비디오를 삭제하기위한 것이고 다른 하나는 비디오 저장을위한 것입니다. 나는 checkbox를 클릭 할 때 내 액션을 확인하도록 확인 상자를 추가하고 싶습니다. 내 코드에 확인 상자를 추가하는 방법은 무엇입니까? 그것을 위해체크 박스를 클릭하면 확인 상자를 추가하는 방법은 무엇입니까?

deleteCheckBox.setOnClickListener(deleteRelatedThumbnail(deleteCheckBox)); 

View.OnClickListener deleteRelatedThumbnail(final CheckBox checkBox) { 

     return new View.OnClickListener() { 
      public void onClick(View v) { 
       int index = checkBox.getId(); 
       if (((CheckBox) v).isChecked() && deleteVideoFile(index - 1)){ 

        // if(deleteVideoFile(index-1)){ 
        bitMapsAvailable.remove(index - 1); 
        bitMapsFilePath.remove(index - 1); 
        Toast.makeText(MainActivity.this, "Selected video file is deleted successfully.", Toast.LENGTH_SHORT).show(); 
        showThumbnails(); 
       }else{ 
        Toast.makeText(MainActivity.this, "Not deleted", Toast.LENGTH_SHORT).show(); 
       } 

      } 
     }; 
    } 





    saveCheckBox.setOnClickListener(saveRelatedThumbnail(saveCheckBox)); 
    View.OnClickListener saveRelatedThumbnail(final CheckBox checkBox) { 

     return new View.OnClickListener() { 
      public void onClick(View v) { 
       int index = checkBox.getId()-31; 
       if (((CheckBox) v).isChecked()){ 
       String src = bitMapsFilePath.get(index-1); 
       String destination = mVideoFolder+"/"+new File(src).getName(); 

       File srcFile = new File(src); 
       srcFile.renameTo(new File(destination)); 
       Toast.makeText(MainActivity.this, "Saved in "+destination, Toast.LENGTH_SHORT).show(); 
       bitMapsAvailable.clear(); 
       for(String filePath: bitMapsFilePath) { 
        File file = new File(filePath); 
        file.delete(); 
       } 
       bitMapsFilePath.clear(); 
       Toast.makeText(MainActivity.this, "Temporary videos are deleted successfully",Toast.LENGTH_SHORT).show(); 
       showThumbnails(); 
      } 
     } 
    }; 
    } 
+0

당신은 2 개 버튼이 포함 된 레이아웃을 만들 수 있습니다 사용할 수 있습니다 - 예와 아니오. 클릭하여 삭제/저장하고, 해당 레이아웃을 표시하고 (가시성이 가시화 됨) 예 버튼을 누르면 계속해서 원하는대로 삭제/저장합니다. –

+0

SharedPreference를 사용하여 상태를 저장합니다. 답변을 참조하십시오 http://stackoverflow.com/questions/10016752/saving-checkbox-states –

+0

내가 편집 한 내 답변보기, 복사하여 삭제 확인란으로 대체하십시오. – Redman

답변

1

당신은 경고 대화

deleteCheckBox.setOnClickListener(deleteRelatedThumbnail(deleteCheckBox)); 

View.OnClickListener deleteRelatedThumbnail(final CheckBox checkBox) { 

     return new View.OnClickListener() { 
      public void onClick(View v) { 
       int index = checkBox.getId(); 
       if (((CheckBox) v).isChecked() && deleteVideoFile(index - 1)){ 
        AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);// use you activity name 
       builder.setMessage("Are you sure you want to delete? ") 
         .setPositiveButton("Ok", 
       new DialogInterface.OnClickListener() { 

        @Override 
        public void onClick(DialogInterface dialog, int which) { 

         bitMapsAvailable.remove(index - 1); 
        bitMapsFilePath.remove(index - 1); 
        Toast.makeText(MainActivity.this, "Selected video file is deleted successfully.", Toast.LENGTH_SHORT).show(); 
        showThumbnails(); 

        } 
       }) 

     .setNegativeButton("Cancel",new DialogInterface.OnClickListener() { 

        @Override 
        public void onClick(DialogInterface dialog, int which) { 
      Toast.makeText(MainActivity.this, "Not deleted", Toast.LENGTH_SHORT).show(); 

        } 
       }); 
       AlertDialog dialog=builder.create(); 
       dialog.show(); 

        // if(deleteVideoFile(index-1)){ 

       }else{ 
        Toast.makeText(MainActivity.this, "Not deleted", Toast.LENGTH_SHORT).show(); 
       } 

      } 
     }; 
    } 
+0

감사합니다. – user7328722

0

그냥 사용자에 AlertDialog :

private void showLocationDialog() { 

AlertDialog.Builder builder = new AlertDialog.Builder(yOURActivity.this); 
builder.setTitle(getString(R.string.dialog_title)); 
builder.setMessage(getString(R.string.dialog_message)); 

String positiveText = getString(android.R.string.ok); 
builder.setPositiveButton(positiveText, 
     new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     // positive button logic 
    } 
}); 

String negativeText = getString(android.R.string.cancel); 
builder.setNegativeButton(negativeText, 
     new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     // negative button logic 
    } 
}); 

AlertDialog dialog = builder.create(); 
// display dialog 
dialog.show(); 

}

+0

내 코드 bcz i와 함께 사용하는 방법을 시연 해 주시겠습니까? 이미 onclicklistener가 있으므로 혼란스러워하고 있습니다. – user7328722

+0

if 블록에서 showLocationDialog()를 호출하고 경고 대화 상자의 버튼 클릭에 대한 조건을 처리합니다. – Akshay