I'm trying to return data based on a parameter in Xamarin Android C#. I've got the below code working when pulling all data back, however I need to use a SQLite WHERE query to return specific data.
I need to use the value from an AutoCompleteTextView field for the parameter..
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
//ActionBar.NavigationMode = ActionBarNavigationMode.Tabs;
SetContentView(Resource.Layout.Main);
db = new DBHelper(this);
sqliteDB = db.WritableDatabase;
container = FindViewById<LinearLayout>(Resource.Id.container);
var btnEmergencyServices = FindViewById<Button>(Resource.Id.btnEmergencyServices);
btnEmergencyServices.Click += btnEmergencyServices_onClick;
}
private void EmergencyServicesData()
{
ICursor selectData = sqliteDB.RawQuery("select POLICE, FIRE, MEDICAL from EmergencyServices WHERE COUNTRY = @Country", new string[] { });
if (selectData.Count > 0)
{
selectData.MoveToFirst();
do
{
EmergencyServices emergencyServices = new EmergencyServices();
emergencyServices.POLICE = selectData.GetString(selectData.GetColumnIndex("POLICE"));
emergencyServices.FIRE = selectData.GetString(selectData.GetColumnIndex("FIRE"));
emergencyServices.MEDICAL = selectData.GetString(selectData.GetColumnIndex("MEDICAL"));
EmergencyServices.Add(emergencyServices);
}
while (selectData.MoveToNext());
selectData.Close();
}
foreach (var item in EmergencyServices)
{
LayoutInflater layoutInflater = (LayoutInflater)BaseContext.GetSystemService(Context.LayoutInflaterService);
View addView = layoutInflater.Inflate(Resource.Layout.EmergencyServices, null);
TextView txtPolice = addView.FindViewById<TextView>(Resource.Id.txtPolice);
TextView txtFire = addView.FindViewById<TextView>(Resource.Id.txtFire);
TextView txtMedical = addView.FindViewById<TextView>(Resource.Id.txtMedical);
txtPolice.Text = item.POLICE;
txtFire.Text = item.FIRE;
txtMedical.Text = item.MEDICAL;
container.AddView(addView);
}
}