1. 준비물
Dialog를 사용할 것입니다. Dialog를 위해 이런 코드를 써야 합니다.
import android.content.DialogInterface; import android.content.Intent; import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatDialogFragment; private void openDialog() { } | cs |
이렇게 하면 Dialog가 열립니다.
Dialog 안에도 inflater를 써서 콘텐츠를 가져옵니다.
LayoutInflater inflater = LayoutInflater.from(getContext()); View subView = inflater.inflate(R.layout.dialog_layout, null); | cs |
View도 가져옵니다. View를 가져올 시엔 inflater를 사용합니다. getContext()는 액티비티의 속성을 가져오기 위해 사용합니다.
final EditText subEditText = (EditText) subView.findViewById(R.id.dialogEditText); | cs |
EditText는 유저가 할 말을 전달하는 역할을 수행합니다.
그 외 기타 코드들 입니다.
subEditText.setSelection(subEditText.length()); AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(getContext(), R.style.myDialog)); builder.setTitle("Text to Post"); builder.setView(subView); AlertDialog alertDialog = builder.create(); | cs |
Dialog는 builder로 create()해줘야 합니다.
2. 긍정, 부정 버튼
긍정 버튼은 이렇게 구현합니다.
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { mEditTextdialogOpenField.setText(subEditText.getText().toString()); } }); | cs |
이러면 긍정적으로 버튼이 작동합니다. 질문에 긍정적으로 답했을 때 코드들이 실행되는 구조입니다.
반대로 부정 버튼은 이렇게 합니다.
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Snackbar.make(getView(), "Cancel", Snackbar.LENGTH_LONG).show(); } }); | cs |
이러면 버튼이 부정적으로 동작하게 됩니다.
builder.show(); | cs |
애써 만든 코드에 show()를 더해줘야 정상적으로 동작합니다.
'Java' 카테고리의 다른 글
[utils] Bitmap 파일 다루는 데에 도움될 만한 유틸리티 함수 예제 (0) | 2018.02.03 |
---|---|
[android] 이미지 불러와서 편집하기 (0) | 2018.02.03 |
[android] 이미지 갤러리 (0) | 2018.02.03 |
[android] 비트맵 파일 retrofit 통신 예제 (0) | 2018.02.03 |
[android] Activity 구현 팁 (1) | 2018.02.03 |