Я совершенно новый для разработки android andoveroverflow, поэтому, пожалуйста, пройдите ко мне. ;)Int возвращается, когда String ожидается с помощью TextView
Я создал ViewGroup с несколькими TextViews. Один, в частности, имеет случай переключения, где константы case являются целыми числами, определенными в моем объекте java. Затем я устанавливаю операторы case в то, что, по моему мнению, является значением String. Наконец, я использую метод setText() для установки объекта TextView в эту строку. Проблема, с которой я сталкиваюсь, заключается в том, что то, что на самом деле возвращается в представление, представляет собой целое число, связанное с этим случаем, а не текстовое значение. Это заставляет меня поверить, что то, что я передаю в TextView, является int, но я не вижу, как и где я могу это исправить.
Любая помощь была бы принята с благодарностью.
Код ViewGroup здесь:
public View getView (int position, View convertView, ViewGroup parent)
{
ViewGroup listItem;
if (convertView == null) {
listItem = (ViewGroup) getLayoutInflator().inflate(R.layout.list_item, null);
}
else {
listItem = (ViewGroup) convertView;
}
MovieInfo movieInfo = list.get(position);
TextView movietitleText = (TextView) listItem.findViewById(R.id.movietitle_text);
TextView directorText = (TextView) listItem.findViewById(R.id.director_text);
TextView producerText = (TextView) listItem.findViewById(R.id.producer_text);
TextView releaseyearText = (TextView) listItem.findViewById(R.id.releaseyear_text);
TextView genreText = (TextView) listItem.findViewById(R.id.genre_text);
movietitleText.setText(movieInfo.getMovietitle());
producerText.setText(movieInfo.getProducer());
directorText.setText(movieInfo.getDirector());
releaseyearText.setText(movieInfo.getReleaseyear());
String genreName;
Resources resources = context.getResources();
switch (movieInfo.getGenre()) {
case MovieInfo.GENRE_ACTION:
genreName = resources.getString(R.string.action_label);
break;
case MovieInfo.GENRE_COMEDY:
genreName = resources.getString(R.string.comedy_label);
break;
case MovieInfo.GENRE_DRAMA:
genreName = resources.getString(R.string.drama_label);
break;
case MovieInfo.GENRE_FAMILY:
genreName = resources.getString(R.string.family_label);
break;
case MovieInfo.GENRE_HORROR:
genreName = resources.getString(R.string.horror_label);
break;
case MovieInfo.GENRE_ROMANCE:
genreName = resources.getString(R.string.romance_label);
break;
default:
case MovieInfo.GENRE_UNKNOWN:
genreName = resources.getString(R.string.unknown_label);
break;
}
genreText.setText(genreName);
return listItem;
}
Случай константы определены в моем Java объект здесь:
public static final int GENRE_UNKNOWN = 0;
public static final int GENRE_ACTION = 1;
public static final int GENRE_COMEDY = 2;
public static final int GENRE_DRAMA = 3;
public static final int GENRE_FAMILY = 4;
public static final int GENRE_HORROR = 5;
public static final int GENRE_ROMANCE = 6;
private String movietitle;
private String director;
private String producer;
private String releaseyear;
private int genre;
и действие, чтобы установить жанр, когда флажок в основной вид деятельности здесь:
if (actionCheckBox.isChecked()) movieInfo.setGenre(MovieInfo.GENRE_ACTION);
if (comedyCheckBox.isChecked()) movieInfo.setGenre(MovieInfo.GENRE_COMEDY);
if (dramaCheckBox.isChecked()) movieInfo.setGenre(MovieInfo.GENRE_DRAMA);
if (familyCheckBox.isChecked()) movieInfo.setGenre(MovieInfo.GENRE_FAMILY);
if (horrorCheckBox.isChecked()) movieInfo.setGenre(MovieInfo.GENRE_HORROR);
if (romanceCheckBox.isChecked()) movieInfo.setGenre(MovieInfo.GENRE_ROMANCE);
Порция strings.xml здесь:
<string name="movietitle_label">Movie Title</string>
<string name="director_label">Director</string>
<string name="producer_label">Producer</string>
<string name="releaseyear_label">Release Year</string>
<string name="genre_label">Genre</string>
<string name="action_label">Action</string>
<string name="comedy_label">Comedy</string>
<string name="drama_label">Drama</string>
<string name="family_label">Family</string>
<string name="horror_label">Horror</string>
<string name="romance_label">Romance</string>
<string name="unknown_label">Unknown</string>
<string name="ok_label">OK</string>
<string name="clear_label">Clear</string>
<string name="showdatabase_label">Show Database</string>
<string name="id_label">ID</string>
<string name="select">Select Year</string>
Благодарим за помощь!
Я хотел бы проверить файл ресурсов, чтобы увидеть, если, например R.string.action_label действительно строка, а не число. – Marcelo
Можете ли вы вставить strings.xml для R.string, который вы поставили выше? (R.string.action_label и т. Д.) –
Marcelo, R.string.action_label на самом деле является int (public static final int action_label = 0x ####), но в моем файле Strings.xml у меня есть Действие . Поскольку R автогенерируется и action_label определен в моем xml как String, как мне получить R, чтобы распознать его как таковой? –
user2916836