Попробуйте использовать следующее:
intent.setClassName("com.x.y", "com.x.y.className");
Это работает для меня
ArrayAdapter использует TextView для отображения каждого элемента внутри него. За кулисами он использует метод toString()
для каждого объекта, который он удерживает, и отображает это в TextView. ArrayAdapter имеет несколько конструкторов, которые могут использоваться, и тот, который вы использовали в вашем примере:
ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
По умолчанию ArrayAdapter использует текстовый текст по умолчанию для отображения каждого пункт. Но если вы хотите, вы можете создать свой собственный TextView и реализовать любой сложный дизайн, который вам нужен, расширяя класс TextView. Это должно было бы зайти в макет для вашего использования. Вы можете ссылаться на это в поле textViewResourceId, чтобы привязать объекты к этому представлению, а не по умолчанию.
Для вашего использования я бы предположил, что вы используете конструктор:
ArrayAdapter(Context context, int resource, T[] objects).
В вашем случае это будет:
ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values)
, и все должно быть хорошо. Это свяжет каждую строку с дисплеем TextView по умолчанию - простым и простым белым фоном.
Чтобы ответить на ваш вопрос, вам не нужно использовать textViewResourceId.
public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects)
Я также новичок в Android, поэтому я могу ошибаться. Но согласно моему пониманию, используя это для создания списка, второй аргумент - это расположение элементов списка. Макет состоит из множества видов (вид изображения, текстовое представление и т. Д.). С третьим аргументом вы указываете, в каком представлении или текстовом режиме вы хотите, чтобы текст отображался.
Но опять же главное сомнение в том, зачем нужен идентификатор ресурса TextView?
blockquote>Посмотрите на конструктор и параметры.
public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects)
Добавлено в уровне API 1 Конструктор
Параметры
context
Текущий контекст.
resource
Идентификатор ресурса для файла макета, содержащий макет, который будет использоваться при создании экземпляров.blockquote>
textViewResourceId
Идентификатор TextView в ресурсе макета, который будет заполнен. объекты для представления вListView
.
android.R.id.text1
относится к идентификатору текста в ресурсе android. Поэтому вам не нужно иметь в своей деятельности.Вот полный список
http://developer.android.com/reference/android/R.id. html
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values);
this
относится к контексту активности
android.R.layout.simple_list_item_1
simple_list_item_1 - это макет в android.R.layout.
android.R.id.text1
относится к идентификатору ресурса android.
values
- это строковый массив из предоставленной вами ссылкиhttp://developer.android.com/reference /android/R.layout.html
Идентификатор ресурса TextView, который ему нужен, предназначен для файла макета TextView, поэтому он не будет находиться в одном и том же действии.
Вы можете создать его, выбрав File> New> XML> XML Layout File и введите тип виджета, который является «TextView» в поле корневого тега.
Источник: https://www.kompulsa.com/the-simplest-way-to-implement-an-android-listview/
Вам не нужно использовать id для textview. Вы можете узнать больше из android arrayadapter . В приведенном ниже коде инициализируется массив.
ArrayAdapter arrayAdapter = new ArrayAdapter(this, R.layout.single_item, eatables);
Ответ на ваш вопрос: 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);
Это также действительный код вы можете использовать с гораздо более ясным.
public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects)
Здесь ресурс означает «идентификатор» макета, который вы используете при создании экземпляра.
Теперь этот макет имеет много дочерних представлений со своими идентификаторами. Таким образом, textViewResourceId
сообщает, какое дочернее представление нужно заполнить данными.