Ответ на ваш вопрос: android.R.id.text1
is int: Идентификатор TextView в ресурсе макета, который будет заполнен.
ArrayAdapter имеет так много конструкторов с различным количеством аргументов. Я упоминаю некоторые из их
ArrayAdapter(Context context, int resource)
ArrayAdapter(Context context, int resource, int textViewResourceId)
ArrayAdapter(Context context, int resource, T[] objects)
ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
ArrayAdapter(Context context, int resource, List<T> objects)
ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)
Теперь вы можете понять, что каждый конструктор отличается, и они использовали другой список аргументов.
И простой ответ: вы можете использовать ArrayAdapter с текстовым представлением внутри целевого xml-файла или без него. Это неважно. И вам не нужно указывать идентификатор текста, который вы можете использовать без него. Но вам, возможно, придется перейти с некоторым предварительным вариантом с вашим простым списком, вы должны пойти с текстовым представлением.!
Здесь пример примера
ArrayAdapter adapter = new ArrayAdapter<String>(this,R.layout.ListView,StringArray);
ListView listView = (ListView) findViewById(R.id.listview);
listView.setAdapter(adapter);
Это также действительный код вы можете использовать с гораздо более ясным.
Символ +
имеет специальное значение в url =>, это означает пробел. Если вы хотите использовать знак +
, вам нужно URL-кодировать его:
body=Hi+there%2bHello+there
Вот пример того, как вы могли бы правильно генерировать URL-адреса в .NET:
var uriBuilder = new UriBuilder("https://mail.google.com/mail");
var values = HttpUtility.ParseQueryString(string.Empty);
values["view"] = "cm";
values["tf"] = "0";
values["to"] = "someemail@somedomain.com";
values["su"] = "some subject";
values["body"] = "Hi there+Hello there";
uriBuilder.Query = values.ToString();
Console.WriteLine(uriBuilder.ToString());
Результат
blockquote>
Вам нужен символ плюса (+) в теле, который вы должны его кодировать как 2B.
Например: Попробуйте
Безопаснее всегда кодировать все символы, кроме тех, которые определены как «безоговорочно» в RFC-3986.
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
Итак, процентное кодирование символа плюса и других специальных символов.
Проблема, которую вы испытываете с плюсами, заключается в том, что, согласно RFC- 1866 (спецификация HTML 2.0), пункт 8.2.1. подпункт 1. «Имена и значения полей формы сбрасываются: символы пробела заменяются на« + », а затем зарезервированные символы экранируются»). Этот способ кодирования данных формы также приведен в более поздних спецификациях HTML, ищите соответствующие абзацы о приложении / x-www-form-urlencoded.
Uri
вUriBuilder
, вы получите плохой результат.uriBuilder.Uri.ToString()
в вашем примере вернетHi+there+Hello+there
. ИспользованиеuriBuilder.Uri.AbsoluteUri
похоже работает корректно, и stackoverflow.com/a/15120429/1931573 предполагает, что это исправлено в .NET 4.5. Что касается RFC, спецификация HTML 4 говорит, что URL-адрес querystring имеет типapplication/x-www-form-urlencoded
, который сам определяет (+) как значение пробела. Таким образом, это не RFC, а является частью стандарта HTML. – Nick 14 June 2016 в 23:22