대화 상자 내에서 라디오 버튼 사용
-
12-11-2019 - |
문제
나는 사용자가 옵션을 선택할 수 없도록 하고 싶고 대화 상자 내에 일부 라디오 버튼을 제공하고 싶습니다.OnCreate 섹션에 이와 같은 라디오 버튼을 선언했습니다.
@Override
protected Dialog onCreateDialog(int id) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
if (id > 0)
{
LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View layout = layoutInflater.inflate(R.layout.lectsort_dialog, (ViewGroup) findViewById(R.id.lect_sort));
builder.setView(layout);
// Now configure the AlertDialog
builder.setTitle(R.string.exsort_title);
radio_date = (RadioButton) findViewById(R.id.RBdate);
radio_loctn = (RadioButton) findViewById(R.id.RBloctn);
radio_stream = (RadioButton) findViewById(R.id.RBstream);
radio_date.setOnClickListener(radio_listener);
radio_loctn.setOnClickListener(radio_listener);
radio_stream.setOnClickListener(radio_listener);
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
}
radio_listener 프로시저는 다음과 같이 선언됩니다.
RadioButton.OnClickListener radio_listener =
new RadioButton.OnClickListener()
{
@Override
public void onClick(View v) {
// Perform action on clicks
RadioButton rb = (RadioButton) v;
Toast.makeText(LecturesActivity.this, rb.getText(), Toast.LENGTH_SHORT).show();
}
};
그러나 대화 상자가 호출되면 이 줄에 Null 예외 오류가 발생합니다.
radio_date.setOnClickListener(radio_listener);
내가 도대체 뭘 잘못하고있는 겁니까?
해결책
대화 상자 내에 있는 UI 요소의 ID를 얻으려면 다음과 같이 해야 합니다.
Dialog dialog = new Dialog(mContext); // your dialog creation method here
RadioButton radio_date = (RadioButton) dialog.findViewById(R.id.RBdate);
당신이 사용하는 경우 findViewById
그런 다음 현재 활동 보기(에서 설정했을)와 연관된 보기 개체를 캡처하려고 합니다. setContentView
API)
그래서 해당 ID로 뷰를 찾으려고 합니다. RBdate
찾을 수 없는 활동 뷰에서 null을 반환합니다.
다른 팁
다음 코드를 확인하십시오 버튼 클릭으로 라디오 버튼이있는 경고
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
//int states = {false, false};
builder.setTitle("Select the item that you want to delete from that item ");
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// TODO Auto-generated method stub
if(id==0){
}
else
{
});
alert= builder.create();
alert.show();
}
});
.
u 이것을 시도하고 알려주세요
제휴하지 않습니다 StackOverflow