Как преобразовать список в строку из массива, который получает данные из предыдущего действия

#c# #android #xamarin #android-5.0-lollipop

#c# #Android #xamarin #android-5.0-lollipop

Вопрос:

Я пытаюсь преобразовать конкретный элемент в списке после нажатия на него, он преобразуется в строку, а затем отправляет эту информацию обратно в MainActivity. Возникли проблемы с преобразованием информации в строку.

  namespace GPS2
{
[Activity(Label = "@string/GPSHistory")]
public class GPSHistory : ListActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        // Create your application here
        // Draw controls
        // SetContentView(Resource.Layout.GPSHistoryLayout);



        var strGPSAnswer = Intent.Extras.GetStringArrayList("Answer") ?? new string[0];
        ListAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, strGPSAnswer);

        ListView.TextFilterEnabled = true;

        ListView.ItemClick  = delegate (object sender, AdapterView.ItemClickEventArgs args)
        {

            //Confirmation that it works.
            Toast.MakeText(Application, ((TextView)args.View).Text, ToastLength.Short).Show();

            //Prepare string and send back to first page.
            var i = new Intent(this, typeof(MainActivity));
            i.PutExtra("string", strGPSAnswer);
            StartActivity(i);

        };
    }
}
}
  

Комментарии:

1. Какой тип элементов в этом listview? Пожалуйста, поделитесь своим набором данных listview

Ответ №1:

Согласно <a rel="noreferrer noopener nofollow" href="https://developer.android.com/reference/android/content/Intent.html#putStringArrayListExtra(java.lang.String, java.util.ArrayList)» rel=»nofollow noreferrer»>дополнениям к намерениям Android Intent docs,

putStringArrayListExtra

имя должно быть как:

Добавьте расширенные данные в намерение. Имя должно содержать префикс пакета, например, приложение com.android.contacts будет использовать имена типа «com.android.contacts.Показать все «

В вашем коде похоже, что «Ответ» — это ключ, который не включает префикс пакета.

Я мог бы добавить это в комментарий, но у меня недостаточно очков.