我用radiobuttons开发DialogFragment。只有我可以选择一个选项。我正在使用ArrayAdapter来自定义我的DialogFragment。
当我按OK时,我想显示所选选项的电子邮件(在本例中为alberto@gmail.com)。我的问题是我无法获得所选的选项。
MYDIALOGFRAGMENT
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
final List<PlayerMVP> listPlayer= new ArrayList<PlayerMVP>();
final PlayerMVPAdapter playerMVPAdapter = new PlayerMVPAdapter(getContext(),listPlayer);
String gameID= getArguments().getString("gameID");
Acciones.attendancesPlayerToGame(gameID, getContext(), listPlayer, playerMVPAdapter);
builder.setTitle("VOTA MVP");
builder.setAdapter(playerMVPAdapter, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setSingleChoiceItems(playerMVPAdapter, 0, null).
setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Show email here
}
});
builder.setNegativeButton("CANCEL", null);
return builder.create();
}
在这里,我还提出了ArrayAdapter的getView代码
MYARRAYADAPTER-获取视图
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (null == convertView) {
convertView = inflater.inflate(
R.layout.playermvp,
parent,
false);
}
TextView nameAndSurname= (TextView) convertView.findViewById(R.id.tv_nameAndSurnameMVP);
TextView email= (TextView) convertView.findViewById(R.id.tv_email_mvp);
final RadioButton rbFolder = (RadioButton)convertView.findViewById(R.id.radioButton_MVP);
rbFolder.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
if (selected != null) {
selected.setChecked(false);
}
rbFolder.setChecked(true);
selected = rbFolder;
}
});
PlayerMVP playerMVP= getItem(position);
nameAndSurname.setText(playerMVP.getNombre() +' ' +playerMVP.getApellidos());
email.setText(playerMVP.getEmail());
return convertView;
}
谢谢你的帮助!