2014-01-20 3 views
0

Я хотел бы иметь две отдельные кнопки в одном случае OnClick с помощью переключателя заявление, но когда я сделал это, я получил эти ошибки, связанные с переменными jPBtn и vFBtn:Как сделать переменную кнопки видимой внутри события onClick?

vfBtn cannot be resolved or is not a field

jpBtn cannot be resolved or is not a field

Так Я знаю, что это означает, что переменные кнопки не могут быть видны событием клика, но вопрос, который мне задает вопрос, почему они не видны, поскольку я объявил их в onCreate и установил их в прослушиватель? Должен ли я снова объявлять их где-то в другом месте?

Это класс для справки:

public class MainActivity extends Activity implements android.view.View.OnClickListener { 

    Button jpBtn,vfBtn; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     jpBtn = (Button)findViewById(R.id.JourneyPlanBtn); 
     jpBtn.setOnClickListener(this); 

     vfBtn = (Button)findViewById(R.id.FindCarBtn); 
     vfBtn.setOnClickListener(this); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 


     switch(v.getId()){ 
     case R.id.jpBtn: 
      //DO something 
      Intent intent = new Intent(null, JourneyPlanner.class); 
      startActivity(intent); 
     break; 
     case R.id.vfBtn: 
      //DO something 
      Intent intent1 = new Intent(null, VechicleFinderMain.class); 
      startActivity(intent); 
     break; 

    } 

     Intent intent = new Intent(null, JourneyPlanner.class); 
     startActivity(intent); 

    } 

} 
+0

Вы импортируете файл R надлежащим образом? – Egor

+0

, если у вас есть идентификатор кнопки с одинаковыми именами в макете xml, попробуйте сохранить все ваши файлы. –

+0

нет. У меня есть другое имя в классе и xml, также я попытался сохранить, очистить .. но все равно получить ошибку. Это ошибка в моем код? –

ответ

1

Вы должны сделать это так. См. Заявления о случаях.

@Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 


     switch(v.getId()){ 
     case R.id.JourneyPlanBtn: 
      //DO something 
      Intent intent = new Intent(null, JourneyPlanner.class); 
      startActivity(intent); 
     break; 
     case R.id.FindCarBtn: 
      //DO something 
      Intent intent1 = new Intent(null, VechicleFinderMain.class); 
      startActivity(intent); 
     break; 

    } 
+1

Простая просто ссылка на переменные xml, а не переменные класса, должно было запомнить это, спасибо –

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