2015-05-05 4 views
-5

Я пытаюсь сделать простой тернарный оператор, но у меня есть ошибка, которую я не вижу. Это мой код:Android ternary operator

public void setVisibility(boolean isVisible) { 
    View adView = ((Activity) context).findViewById(R.id.adView); 
    isVisible? adView.setVisibility(View.VISIBLE) : adView.setVisibility(View.GONE); 
} 

Я получаю сообщение об ошибке: Не указано. Кто-нибудь знает, где моя ошибка?

+1

Операторы Ternany не могут использоваться при вызове методов, но вместо переменных –

+3

использовать это adView.setVisibility (isVisible? View.VISIBLE: View.GONE); –

+2

Почему у этого вопроса есть -6 downvotes? Я действительно не вижу, что в нем непростительная ошибка. – Ale

ответ

15

это не заявление

int visibility = isVisible ? View.VISIBLE : View.GONE; 
adView.setVisibility(visibility); 

или в одной строке

adView.setVisibility(isVisible ? View.VISIBLE : View.GONE); 
1

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

+0

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. – Thom

+0

Это объяснение, почему оно не работает, и предложение его решить: используйте тройную операцию для ссылки или переменной. – Damien