2013-02-17 4 views
0

Я пытаюсь запустить программу из одного класса в другой нажатием кнопки. Я знаю, что это нужно делать с намерением, но я не уверен, какие действия следует использовать для намерения. Кроме того, я бы предпочел не пытаться использовать OnClickListener, поскольку мне кажется, что я немного чрезмерен для того, что мне нужно делать. Хотя я могу ошибаться, и я просто думаю об этом. Вот что у меня есть для кода:Изменение вида класса с помощью кнопок

public void loginScreen(View view) { 
    // Should take user to the next view when button pressed 
     Intent intent = new Intent(this, LoginActivity.class); 
     Button login = (Button) findViewById(R.id.button1); 
     intent.getData(login); 
     startActivity(intent); 
    } 

Я хочу, чтобы идти к следующему экрану, когда только button1 нажата, так что я не знаю, если только линии 3 и 6 являются единственными, нужны, но он выиграл Не работайте, если это только те двое. Я считаю, что проблема заключается в getData, я не знаю, что добавить туда, но я знаю, что getData ошибается. Я, вероятно, тоже пропустил что-то еще, но я не знаю, что.

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

+1

Что вы пытаетесь достичь с помощью намерения.getData (login); Есть ли у этой кнопки какие-то данные? – theelfismike

+0

«Кроме того, я бы предпочел не пытаться использовать OnClickListener, поскольку мне кажется, что я немного чрезмерен для того, что мне нужно делать». Может показаться чрезмерным, но так оно и работает. – theelfismike

ответ

1

В файле XML вы можете объявить по щелчку:

<Button 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:onClick="loginScreen" /> 

Затем в деятельности:

public void loginScreen(View button) { 
    Intent intent = new Intent(this, LoginActivity.class); 
    startActivity(intent); 
} 

Вот onClick View API

Имя метода в этом Контекст контекста для вызова при просмотре . Это имя должно соответствовать общедоступному методу, который принимает точно один параметр типа View. Например, если вы укажете android: onClick = "sayHello", вы должны объявить публичный void sayHello (View v) метод вашего контекста (как правило, ваша активность).

Обратите внимание, что если вы добавите компоновку onClick в Fragment, все равно ее нужно будет поймать в Activity.

+0

, который звучит примерно так, как мне нужно, но я планирую иметь вторую кнопку, поэтому следует «называть» кнопку «button1»? коррекция, я думаю, что это то, что я буду делать с тех пор, как это сработало. Спасибо за помощь! – Kami

1

без явно устанавливая onClickListener:

<button 
    ... 
    android:onClick="loginClicked" /> 

public void loginClicked(View v) { 
    Intent intent = new Intent(this, LoginActivity.class); 
    startActivity(intent); 
} 

установка также onClickListener явно не слишком много.

Ваш вопрос не совсем ясен, поэтому дайте мне знать, если вам нужно больше, и я отредактирую свой ответ.

+0

Речь идет о том, что сказал Бланделл, но спасибо за помощь. – Kami

+0

@ Kami Yea, он избил меня примерно на 15 секунд, но это не проблема. Рад, что проблема решена. – gsingh2011

+0

@ gsingh2011 ;-) есть upvote – Blundell

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