首先单选布局有问题,其次点击上面的部分对话框消失弹出吐司,点击下方部分无反应
private void showSingleDialog() { //**************** LayoutInflater factory= LayoutInflater.from(this); final View view=factory.inflate(R.layout.single_dialog,null); final String[] items = {"男","女","性别未知","你猜"}; AlertDialog.Builder builder = new AlertDialog.Builder(this) .setTitle("") .setSingleChoiceItems(items,0,new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this,"您选择了:"+items[which],Toast.LENGTH_SHORT).show(); dialog.dismiss(); } }); builder.setView(view); builder.show(); } //布局代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:orientation="horizontal"> <ImageView android:layout_width="40dp" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:src="@mipmap/ic_launcher" /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:paddingLeft="30dp" android:text="请选择一下性别吧" android:textSize="25sp" /> </LinearLayout> <RadioGroup android:id="@+id/rg_gender" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <RadioButton android:id="@+id/rb_male" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男" android:textSize="20sp" android:layout_margin="10dp"/> <RadioButton android:id="@+id/rb_female" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女" android:textSize="20sp" android:layout_margin="10dp"/> <RadioButton android:id="@+id/rb_unknown" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="性别未知" android:textSize="20sp" android:layout_margin="10dp"/> <RadioButton android:id="@+id/rb_guess" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="你猜" android:textSize="20sp" android:layout_margin="10dp"/> </RadioGroup> </LinearLayout>
0
收起
正在回答
4回答
你把第4行代码去掉就行了。只有需要在自定义对话框布局时才需要写xml呢。你的xml也没用。这是两种方式。你同时用了两种。选择一种即可。祝:学习愉快
LexieMIZUKI
2019-04-06 10:47:14
LexieMIZUKI
2019-04-03 11:12:22
class ButtonListener implements View.OnClickListener { @Override public void onClick(View v) { switch (v.getId()) { case R.id.radio: showSingleDialog(); SingleDialog singleDialog = new SingleDialog(MainActivity.this, R.style.myDialog); singleDialog.show(); if(rb_female.isChecked()) Toast.makeText(MainActivity.this, "您选择了:女性。", Toast.LENGTH_SHORT).show(); if(rb_male.isChecked()) Toast.makeText(MainActivity.this, "您选择了:男性。", Toast.LENGTH_SHORT).show(); if(rb_unknown.isChecked()) Toast.makeText(MainActivity.this, "您选择了:性别未知!", Toast.LENGTH_SHORT).show(); if(rb_guess.isChecked()) Toast.makeText(MainActivity.this, "您选择了:你猜!。", Toast.LENGTH_SHORT).show(); break; //自定义类代码 import android.app.Dialog; import android.content.Context; import android.support.annotation.NonNull; import android.view.View; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Toast; public class SingleDialog extends Dialog{ private RadioGroup rg_gender; private RadioButton rb_male,rb_female,rb_unknown,rb_guess; public SingleDialog(@NonNull Context context, int themeResId) { super(context, themeResId); setContentView(R.layout.single_dialog); rg_gender = findViewById(R.id.rg_gender); rb_male = findViewById(R.id.rb_male); rb_female = findViewById(R.id.rb_female); rb_unknown = findViewById(R.id.rb_unknown); rb_guess = findViewById(R.id.rb_guess); rg_gender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId){ case R.id.rb_male: rb_male.isChecked(); break; case R.id.rb_guess: rb_guess.isChecked(); break; case R.id.rb_unknown: rb_unknown.isChecked(); break; case R.id.rb_female: rb_female.isChecked(); break; } } }); } }
Android零基础入门2018版
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星