#c# #xamarin.android
#c# #xamarin.android
Вопрос:
Название продукта, количество продукта и единица измерения продукта являются динамическими полями, когда я нажимаю кнопку генерировать поля продукта, мое приложение генерирует поля названия продукта, количества продукта и единицы измерения продукта, и моя проблема в том, как добавить или сохранить в список значения каждого из этих трех динамических полей?
[Activity(Label = "ToExistingCustomer", ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation, ScreenOrientation = ScreenOrientation.Landscape)]
public class ToExistingCustomer : Android.Support.V7.App.AppCompatActivity
{
//IList<string> agentData = new List<string>();
IList<string> agentList = new List<string>();
IList<string> custList = new List<string>();
IList<string> prodList = new List<string>();
IList<string> _prodList = new List<string>();
TableLayout tbleLayout;
TableRow tr, _tr;
private static Spinner spinner, spinner1, spinner2, spinner3, _spinner;
private EditText qty, unit, _td1, _td2;
private TextView txtdate;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.ExistingCustomer);
qty = FindViewById<EditText>(Resource.Id.qty);
unit = FindViewById<EditText>(Resource.Id.unit);
txtdate = FindViewById<TextView>(Resource.Id.txtdate);
DateTime now = DateTime.Now.ToLocalTime();
txtdate.Text = now.ToString();
tbleLayout = FindViewById<TableLayout>(Resource.Id.tbleLayout);
tr = FindViewById<TableRow>(Resource.Id.tr);
agentList = Intent.GetStringArrayListExtra("agentList");
agentList.Add("Select Agent Name");
spinner = FindViewById<Spinner>(Resource.Id.spinner);
custList = Intent.GetStringArrayListExtra("custList");
custList.Add("Select Customer Name");
spinner1 = FindViewById<Spinner>(Resource.Id.spinner1);
prodList = Intent.GetStringArrayListExtra("prodList");
spinner2 = FindViewById<Spinner>(Resource.Id.spinner2);
spinner3 = FindViewById<Spinner>(Resource.Id.spinner3);
var btn = FindViewById<Button>(Resource.Id.btn);
var adapter3 = ArrayAdapter.CreateFromResource(this, Resource.Array.Recipient, Android.Resource.Layout.SimpleSpinnerItem);
adapter3.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
spinner3.Adapter = adapter3;
//spinner3.SetBackgroundResource(Resource.Drawable.EditTxtStyle);
ArrayAdapter<string> adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, agentList);
spinner.Adapter = adapter;
ArrayAdapter<string> adapter1 = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, custList);
spinner1.Adapter = adapter1;
ArrayAdapter<string> adapter2 = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleDropDownItem1Line, prodList);
prodList.Add("Select Product Name");
spinner2.Adapter = adapter2;
btn.Click = (sender, e) =>
{
_tr = new TableRow(this);
_spinner = new Spinner(this);
_td1 = new EditText(this);
_td2 = new EditText(this);
if (tbleLayout.ChildCount == 12)
{
Toast.MakeText(this, "Sorry, you can only order 10 products at a time", ToastLength.Short).Show();
return;
}
else
{
//_td1.LayoutParameters = new LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.MatchParent);
_tr = new TableRow(new ContextThemeWrapper(this, Resource.Style.tableRow));
//_tr.SetPadding(2, 2, 2, 2);
//_tr.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams 0dp, ))
_td1.LayoutParameters = new TableRow.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent);
_td1.SetBackgroundResource(Resource.Drawable.auto_borderColor);
#pragma warning disable CS0618 // Type or member is obsolete
_td1.SetTextColor(Resources.GetColorStateList(Resource.Drawable.myColors));
#pragma warning restore CS0618 // Type or member is obsolete
_td1.SetHint(Resource.String.qty);
_td2.LayoutParameters = new TableRow.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent);
_td2.SetBackgroundResource(Resource.Drawable.auto_borderColor);
#pragma warning disable CS0618 // Type or member is obsolete
_td2.SetTextColor(Resources.GetColorStateList(Resource.Drawable.myColors));
#pragma warning restore CS0618 // Type or member is obsolete
_td2.SetHint(Resource.String.unit);
_spinner.SetBackgroundResource(Resource.Drawable.auto_DDarrow);
_spinner.SetPopupBackgroundResource(Resource.Drawable.spinnerPopBackground);
ArrayAdapter<string> _adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleDropDownItem1Line, prodList);
_spinner.Adapter = _adapter;
_tr.AddView(_spinner);
_tr.AddView(_td1);
_tr.AddView(_td2);
tbleLayout.AddView(_tr);
if(!TextUtils.IsEmpty(_td1.Text.ToString()) amp;amp; !TextUtils.IsEmpty(_td2.Text.ToString()) amp;amp; !TextUtils.IsEmpty(_spinner.ToString()))
{
return;
}
else
{
_prodList.Add(_spinner.ToString() "|" _td1.Text.ToString() "|" _td2.Text.ToString());
}
}
};
}
}
Я привожу скриншот внизу, чтобы было понятно.
Комментарии:
1. Первое, что вам нужно сделать, это отформатировать размещенный здесь код
2. Вы имеете в виду изменение порядка или добавление элементов в список?
3. добавить в список на основе порядка строк таблицы..
4. forums.xamarin.com/discussion/152338 / … обновлено