Как исправить код для отображения данных в EditText, используя метод GET, myjson url - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь отобразить свои данные из myjson API в тексте редактирования после нажатия кнопки, но, к сожалению, данные не отображаются в тексте редактирования, вместо этого при нажатии на кнопку появился черный ящик. Я пытаюсь получить данные с локального сервера SQL на Xamarin.Android. Я надеюсь, что вы можете помочь мне решить мои проблемы. Спасибо!

код PersonalInfoActivity.cs

using System;
using Android.App;
using Android.Views;
using Android.Widget;
using System.Net;
using System.IO;
using System.Data.SqlClient;
using Newtonsoft.Json;
using System.Net.Http.Headers;
using System.Net.Http;

namespace CatcityPark
{
    [Activity(Label = "Account Info", Theme = "@android:style/Theme.Holo.Light")]
    public class PersonalInfoActivity : Activity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.PersonalInfo);

            ActionBar.SetDisplayHomeAsUpEnabled(true);

            Button btnGetAcc = FindViewById<Button>(Resource.Id.btnGetAcc);

            btnGetAcc.Click += BtnGetAcc_Click;
        }

        private async void BtnGetAcc_Click(object sender, EventArgs e)
        {
            EditText email = FindViewById<EditText>(Resource.Id.txtEmail);
            EditText firstName = FindViewById<EditText>(Resource.Id.txtFirstName);
            EditText lastName = FindViewById<EditText>(Resource.Id.txtLastName);
            EditText gen = FindViewById<EditText>(Resource.Id.txtGender);
            EditText ic = FindViewById<EditText>(Resource.Id.txtIC);
            EditText address = FindViewById<EditText>(Resource.Id.txtAddress);
            EditText phoneNo = FindViewById<EditText>(Resource.Id.txtPhoneNo);
            EditText username = FindViewById<EditText>(Resource.Id.txtUsername);
            EditText password = FindViewById<EditText>(Resource.Id.txtPwd);
            EditText payment = FindViewById<EditText>(Resource.Id.txtPayMethod);

            VehicleRecord vehicRec = null;
            var client = new System.Net.Http.HttpClient();
            var response = await client.GetAsync("https://api.myjson.com/bins/13z38c" + email.Text.ToString());
            string contactsJson = await response.Content.ReadAsStringAsync();
            //VehicleRecordList objVehicRecList = new VehicleRecordList();
            try
            {
                vehicRec = Newtonsoft.Json.JsonConvert.DeserializeObject<VehicleRecord>(contactsJson);
            }
            catch (Exception ex) { }
            if (vehicRec == null)
            {
                Toast.MakeText(this, contactsJson, ToastLength.Short).Show();
            }
            else
            {
                firstName.Text = vehicRec.firstName;
                lastName.Text = vehicRec.lastName;
                gen.Text = vehicRec.gender;
                ic.Text = vehicRec.icNo;
                address.Text = vehicRec.address;
                phoneNo.Text = vehicRec.phoneNo;
                username.Text = vehicRec.username;
                password.Text = vehicRec.password;
                payment.Text = vehicRec.paymentMethod;
            }
        }
    }
}

код для VehicleRecord.cs

public class VehicleRecord
    {
        public string firstName { get; set; }
        public string lastName { get; set; }
        public string gender { get; set; }
        public string icNo { get; set; }
        public string address { get; set; }
        public string phoneNo { get; set; }
        public string email { get; set; }
        public string username { get; set; }
        public string password { get; set; }
        public string plateNo { get; set; }
        public string model { get; set; }
        public string col { get; set; }
        public string paymentMethod { get; set; }
    }

Ожидаемый результат должен отображать все данные с SQL Server, к сожалению, он не отображается.

1 Ответ

0 голосов
/ 10 апреля 2019

черный ящик появился, когда я нажал на кнопку

Похоже, что черный ящик - это тост с пустой строкой.Я имею в виду этот фрагмент кода:

if (vehicRec == null)
 {
     Toast.MakeText(this, contactsJson, ToastLength.Short).Show();
 }

Итак, сначала проверьте, что ответ успешен, и попробуйте отладить его ..

...