티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
How to make a edittext box in a dialog
다이얼로그에 EditText 박스 만들기
문제 내용
I am trying to make a edittext box in a dialog box for entering a password. and when I am doing I am not able to do. I am a beginner in it. Please help me in this.
비밀번호를 입력하기 위한 다이얼로그에 EditText 박스를 만드는 방법을 찾고 있습니다. 아래를 시도해보았지만 할 수 없었습니다. 초보자입니다. 도와주세요.
public class MainActivity extends Activity {
Button create, show, setting;
//String pass="admin";String password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
create = (Button)findViewById(R.id.amcreate);
setting = (Button)findViewById(R.id.amsetting);
show = (Button)findViewById(R.id.amshow);
//input = (EditText)findViewById(R.id.this);
setting.setVisibility(View.INVISIBLE);
create.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent1 = new Intent(view.getContext(), Create.class);
startActivityForResult(myIntent1, 0);
}
});
show.setOnClickListener(new View.OnClickListener() {
//@SuppressWarnings("deprecation")
public void onClick(final View view) {
// Creating alert Dialog with one Button
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
//AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
// Setting Dialog Title
alertDialog.setTitle("PASSWORD");
// Setting Dialog Message
alertDialog.setMessage("Enter Password");
**final EditText input = new EditText(this);**
//alertDialog.setView(input);
// Setting Icon to Dialog
alertDialog.setIcon(R.drawable.key);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
// Write your code here to execute after dialog
Toast.makeText(getApplicationContext(),"Password Matched", Toast.LENGTH_SHORT).show();
Intent myIntent1 = new Intent(view.getContext(), Show.class);
startActivityForResult(myIntent1, 0);
}
});
// Setting Negative "NO" Button
alertDialog.setNegativeButton("NO",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Write your code here to execute after dialog
dialog.cancel();
}
});
// closed
// Showing Alert Message
alertDialog.show();
}
});
Image
이미지
I want to get as
다음과 같이 원합니다.
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle("PASSWORD");
alertDialog.setMessage("Enter Password");
final EditText input = new EditText(MainActivity.this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
input.setLayoutParams(lp);
alertDialog.setView(input);
alertDialog.setIcon(R.drawable.key);
alertDialog.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
password = input.getText().toString();
if (password.compareTo("") == 0) {
if (pass.equals(password)) {
Toast.makeText(getApplicationContext(),
"Password Matched", Toast.LENGTH_SHORT).show();
Intent myIntent1 = new Intent(view.getContext(),
Show.class);
startActivityForResult(myIntent1, 0);
} else {
Toast.makeText(getApplicationContext(),
"Wrong Password!", Toast.LENGTH_SHORT).show();
}
}
}
});
alertDialog.setNegativeButton("NO",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
alertDialog.show();
}
});
높은 점수를 받은 Solution
I know its too late to answer this question but for others who are searching for some thing similar to this here is a simple code of an alertbox with an edittext
이미 늦었다는 것을 알고 있지만 비슷한 것을 찾고 있는 다른 사용자들을 위해 EditText이 있는 다이얼로그에 대한 간단한 코드를 제공합니다.
AlertDialog.Builder alert = new AlertDialog.Builder(this);
or
또는
new AlertDialog.Builder(mContext, R.style.MyCustomDialogTheme);
if you want to change the theme of the dialog.
만약 다이얼로그의 테마를 변경하고 싶다면
final EditText edittext = new EditText(ActivityContext);
alert.setMessage("Enter Your Message");
alert.setTitle("Enter Your Title");
alert.setView(edittext);
alert.setPositiveButton("Yes Option", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//What ever you want to do with the value
Editable YouEditTextValue = edittext.getText();
//OR
String YouEditTextValue = edittext.getText().toString();
}
});
alert.setNegativeButton("No Option", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// what ever you want to do with No option.
}
});
alert.show();
가장 최근 달린 Solution
Setting margin in layout params will not work in Alertdialog. you have to set padding in parent layout and then add edittext in that layout.
레이아웃 매개변수에서 여백(margin)을 설정하면 Alertdialog에서 작동하지 않습니다. 부모 레이아웃에서 패딩(padding)을 설정한 후 해당 레이아웃에 EditText을 추가해야 합니다.
This is my working kotlin code...
다음은 제 작동하는 코틀린 코드입니다...
val alert = AlertDialog.Builder(context!!)
val edittext = EditText(context!!)
edittext.hint = "Enter Name"
edittext.maxLines = 1
val layout = FrameLayout(context!!)
//set padding in parent layout
layout.setPaddingRelative(45,15,45,0)
alert.setTitle(title)
layout.addView(edittext)
alert.setView(layout)
alert.setPositiveButton(getString(R.string.label_save), DialogInterface.OnClickListener {
dialog, which ->
run {
val qName = edittext.text.toString()
Utility.hideKeyboard(context!!, dialogView!!)
}
})
alert.setNegativeButton(getString(R.string.label_cancel), DialogInterface.OnClickListener {
dialog, which ->
run {
dismiss()
}
})
alert.show()
출처 : https://stackoverflow.com/questions/18799216/how-to-make-a-edittext-box-in-a-dialog
'개발 > 안드로이드' 카테고리의 다른 글
Android의 컨텍스트에서 활동 가져오기 (0) | 2023.01.11 |
---|---|
안드로이드 웹뷰에서 위치정보 사용하기 (0) | 2023.01.10 |
프래그먼트에서 액티비티 함수 호출하기 (0) | 2023.01.10 |
WebView 리소스 요청에 사용자 지정 헤더 추가하기 (0) | 2023.01.09 |
Android의 상태 표시줄 높이 구하기 (0) | 2023.01.09 |