#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.Показать все «
В вашем коде похоже, что «Ответ» — это ключ, который не включает префикс пакета.
Я мог бы добавить это в комментарий, но у меня недостаточно очков.