2013-04-10 2 views
1

Объясните мне, пожалуйста, почему IntelliJ IDEA показывает мне параметр никогда не использовался?Android: IntelliJ IDEA 12.1 Просмотр параметров никогда не использовался

http://i.stack.imgur.com/Wvnd2.jpg

public void onClick(View view) { // Parameter 'view' never used 
    Toast.makeText(this, "Hello", Toast.LENGTH_LONG).show(); 
} 

<ToggleButton 
    ... 
    android:onClick="onClick"/> 

Но я знаю, если я удалю это никогда не используется параметр (вид) Android выбросит меня выполнения Exception.

Почему IntelliJ IDEA v12.1 показывает такие предупреждения, но Eclipse не отображается. Как настроить IntelliJ IDEA, чтобы скрыть такие предупреждения для всех проектов Android?

ответ

3

Вы видите это предупреждение, потому что Неиспользованного символа инспекция по умолчанию включена и настроена, чтобы показать все неиспользуемые параметры, а также. Хотя это не проблема в этом конкретном случае, это может помочь вам отслеживать ошибки в других случаях (например, когда вы используете локальную переменную с похожим именем из-за опечатки вместо фактического параметра метода).

Этот осмотр предоставляет множество опций, и вы можете настроить его для своих нужд, например, отключив опцию Check Parameters. Или вы можете определить аннотации, такие как @Unused, чтобы IDE игнорировала любые параметры с помощью этих аннотаций или вы можете просто подавить эту проверку с . Alt + Введите Меню, подменю со стрелкой вправо (подавить для класса/метода/оператора, изменить проверьте настройки или полностью отключите его).

unused symbol

suppress

+0

Спасибо. Это решило мою проблему. –

1

Поскольку вы никогда не используете параметр view в методе onClick. Но эта подпись по умолчанию для этого method.

, например, если вы будете использовать параметр в методе, IntelliJ IDEA не показывает «Параметр не используется»

public void onClick(View view) { // Parameter 'view' used 
if(view.getId() == R.id.myId) //example start 
{ 
    Toast.makeText(this, "CorrectId", Toast.LENGTH_LONG).show(); 
}        //example finish 
Toast.makeText(this, "Hello", Toast.LENGTH_LONG).show(); 
} 

Update:

Например у вас есть 3 кнопки в основной раскладке :

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/my_switcher" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 

<Button 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:id="@+id/btn1" 
     android:onClick="onClick" 
     /> 
<Button 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:id="@+id/btn2" 
     android:onClick="onClick" 
     /> 
<Button 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:id="@+id/btn3" 
     android:onClick="onClick" 
     /> 

</LinearLayout> 

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

public void onClick(View view) { // Parameter 'view' used 
    switch (view.getId()) 
    { 
     case (R.id.btn1): 
     { 
      Toast.makeText(this, "Hello Button_1 pressed", Toast.LENGTH_LONG).show(); 
      break; 
     } 
     case (R.id.btn2): 
     { 
      Toast.makeText(this, "Hello Button_2 pressed", Toast.LENGTH_LONG).show(); 
      break; 
     } 
     case (R.id.btn3): 
     { 
      Toast.makeText(this, "Hello Button_2 pressed", Toast.LENGTH_LONG).show(); 
      break; 
     } 
    } 

Это один из примеров того, как вы можете использовать «вида»

+0

Я знаю, но затмение, например, не предупредит об этом.Можно ли настроить IntelliJ IDEA, чтобы скрыть такие предупреждения для всех проектов Android? –

+0

Да, отметьте [этот ответ] (http://stackoverflow.com/questions/7111027/intellij-disable-code-analysis-light-bulb) – jimpanzer

+0

Это всего лишь предупреждение о том, что вы ничего не забыли. Это следует уважать. IDE уважает вас! – jimpanzer

3

Я не думаю, что изменение настроек предупреждения будет лучшим решением.

Вместо этого, вы можете попробовать этот код:

public void onClick(@SuppressWarnings("UnusedParameters")View ignored) { // Parameter 'ignored' never used 
    Toast.makeText(this, "Hello", Toast.LENGTH_LONG).show(); 
} 
Смежные вопросы