2015-08-16 2 views
1

Этот код является исходным кодом упражнения из курса, который я взял. Он работал отлично до сегодняшнего дня. Никаких изменений не было сделано, и я импортировал его и аналогичный проект и испытал такую ​​же новую ошибку.«android.R.id.content» генерирует ошибку без изменений в исходном коде

public class TourListAdapter extends ArrayAdapter<Tour> { 
    Context context; 
    List<Tour> tours; 


    public TourListAdapter(Context context, List<Tour> tours) { 
     super(context, android.R.id.content, tours); 
     this.context = context; 
     this.tours = tours; 
    } 

Я использую Android Studio 1,3

android.R.id.content используется для работы и теперь генерирует ошибку:

Expected resource of type layout.

Я искал StackOverflow и, как представляется, быть новой функцией, которая аннотирует возможные неправильные совпадения. Каким-то образом этот идентификатор id Android использовался нормально, и его уже нет. Сегодня я не загрузил ничего нового в Android Studio.

Я перестроил, очистил и счил. Я вышел и перезагрузил компьютер без разрешения.

+0

Добро пожаловать в SO. Я отредактировал вопрос, удалив бесполезный тег, в данном случае * R *, который, кажется, не относится к вашему вопросу (я полагаю, разработка Android). В следующий раз будьте более внимательны и приветствуем вас снова. – SabDeM

+0

вы импортировали любые файлы R.java .. проверьте свои импорт. – Lal

+0

Я не импортировал никаких файлов R.java. – dhd1956

ответ

0

Это не ошибка, это просто предупреждение.

Как вы уже отметили в своем вопросе, параметры метода ресурса теперь можно аннотировать, чтобы указать, какой тип ресурса должен быть передан ему. Android Studio проверяет эти параметры на основе имени и флаги, если он не соответствует правильному типу.

Однако вы наткнулись на угловой футляр, с которым Android Studio не справляется. Как отмечено в this question, android.R.id.content - это специальный идентификатор ресурса, используемый для получения корневого представления, не зная фактического идентификатора представления. К сожалению, разработчики Android SDK поставили его как ресурс id, а не как ресурс (его, вероятно, следовало назвать android.R.layout.content, но это уже слишком поздно, чтобы изменить его сейчас!).

Итак, Android Studio ожидает, что вы используете R.layout.value здесь, но вы используете специальный R.id.value. Но вы правы, и ваше приложение должно по-прежнему правильно строить (мое дело, когда я его тестировал) - следовательно, это предупреждение, а не ошибка.

Смежные вопросы