public class OnAdicionarEventArgs : EventArgs
{
private string mNome;
private string mPreco;
private string mUnidade;
private string mCategoria;
public string Nome
{
get{ return mNome; }
set{ mNome=value;}
}
public string Preco
{
get{ return mPreco; }
set{ mPreco=value;}
}
public string Unidade
{
get{ return mUnidade; }
set{ mUnidade=value;}
}
public string Categoria
{
get{ return mCategoria; }
set{ mCategoria=value;}
}
public OnAdicionarEventArgs (string nome, string preco, string unidade, string categoria) : base()
{
Nome = nome;
Preco = preco;
Unidade = unidade;
Categoria = categoria;
}
}
class dialog_Adicionar_produto:DialogFragment
{
double pr=1;
private Button mBtnAdicionar;
private EditText mNome;
private EditText mPreco;
private EditText mCategoria;
private RadioButton mRdbUnidades;
private RadioButton mRdbKilos;
private RadioGroup radG;
int aux;
public event EventHandler<OnAdicionarEventArgs> mOnAdicionarComplete;
public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
base.OnCreateView (inflater, container, savedInstanceState);
var view = inflater.Inflate (Resource.Layout.dialog_adicionar_produtos, container, false);
mBtnAdicionar = view.FindViewById<Button> (Resource.Id.btnDialogAdicionar);
mNome = view.FindViewById<EditText> (Resource.Id.txtNome);
mPreco = view.FindViewById<EditText> (Resource.Id.txtPreco);
mCategoria = view.FindViewById<EditText> (Resource.Id.txtCategoria);
mRdbUnidades = view.FindViewById<RadioButton> (Resource.Id.rdbUnidades);
mRdbKilos = view.FindViewById<RadioButton> (Resource.Id.rdbUnidades);
radG = view.FindViewById<RadioGroup> (Resource.Id.radioGroup);
mBtnAdicionar.Click += mBtnAdicionar_Click;
mNome.TextChanged += mNome_TextChanged;
mPreco.TextChanged += mPreco_TextChanged;
mCategoria.TextChanged += mCategoria_TextChanged;
return view;
}
void mRdbUnidades_Click(object sender, EventArgs e)
{
aux = 0;
Console.WriteLine (mRdbUnidades.Text);
}
void mRdbKilos_Click (object sender, EventArgs e)
{
aux = 1;
Console.WriteLine (mRdbKilos.Text);
}
void mBtnAdicionar_Click (object sender, EventArgs e)
{
//User has clicked the sign up button
if (aux == 0) {
mOnAdicionarComplete.Invoke (this, new OnAdicionarEventArgs (mNome.Text, mPreco.Text, mRdbKilos.Text, mCategoria.Text));
this.Dismiss ();
} else {
mOnAdicionarComplete.Invoke (this, new OnAdicionarEventArgs (mNome.Text, mPreco.Text, mRdbUnidades.Text, mCategoria.Text));
this.Dismiss ();
}
}
}
当用户检查一个或另一个时,我想得到当前检查的单选按钮的值。但是我该怎么做呢?不是用RadioButton.Click吧? 我将通过RadioButton.Text获取此值,它将从检查的那个中获取它。
答案 0 :(得分:1)
使用CheckedChange事件,您将收到所选RadioButton的ID:
radG.CheckedChange += (sender, e) => {
Console.WriteLine(view.FindViewById<RadioButton>(e.CheckedId).Text);
}