Я добавил кнопку в свой XML файл активности и не могу открыть ее для других своих действий. Может кто-нибудь подскажет, пожалуйста, шаг за шагом, как это сделать?
Как получить кнопку, чтобы открыть другой вид деятельности?
Ответ 1
а. Убедитесь, что ваша другая активность объявлена в манифесте:
<activity
android:name="MyOtherActivity"
android:label="@string/app_name">
</activity>
Все действия должны быть объявлены в манифесте, даже если у них нет фильтр намерений, назначенный им.
В. В своей MainActivity сделайте что-то вроде этого:
Button btn = (Button)findViewById(R.id.open_activity_button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, MyOtherActivity.class));
}
});
Ответ 2
Использование OnClickListener
Внутри вашего метода Activity
instance onCreate()
вам нужно сначала найти свой Button
по его идентификатору с помощью findViewById()
, а затем установить OnClickListener
для вашей кнопки и реализовать метод onClick()
, чтобы он начинался ваш новый Activity
.
Button yourButton = (Button) findViewById(R.id.your_buttons_id);
yourButton.setOnClickListener(new OnClickListener(){
public void onClick(View v){
startActivity(new Intent(YourCurrentActivity.this, YourNewActivity.class));
}
});
Это, вероятно, самый предпочтительный метод для разработчиков. Однако существует общая альтернатива.
Использование onClick в XML
В качестве альтернативы вы можете использовать android:onClick="yourMethodName"
, чтобы объявить имя метода в Activity
, которое вызывается при нажатии на Button
, а затем объявите свой метод следующим образом:
public void yourMethodName(View v){
startActivity(new Intent(YourCurrentActivity.this, YourNewActivity.class));
}
Кроме того, не забудьте объявить новый Activity
в manifest.xml
. Надеюсь, это поможет.
Литература;
Ответ 3
Если вы указали свою кнопку в файле xml, подобном этому:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="next activity"
android:onClick="goToActivity2"
/>
то вы можете использовать его для изменения активности, помещая это в файл java:
public void goToActivity2 (View view){
Intent intent = new Intent (this, Main2Activity.class);
startActivity(intent);
}
Обратите внимание, что мое второе действие называется "Main2Activity"
Ответ 4
Button T=(Button)findViewById(R.id.button_timer);
T.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i=new Intent(getApplicationContext(),YOURACTIVITY.class);
startActivity(i);
}
});
Ответ 5
Введите код в файл xml.
<Button android:width="wrap_content"
android:height="wrap_content"
android:id="@+id/button"
android:text="Click"/>
Введите код в свой java файл
Button button=(Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
startActivity(new Intent(getApplicationContext(),Secondclass.class));
/* if you want to finish the first activity then just call
finish(); */
}
});
Ответ 6
Примените следующие шаги:
- вставить новый макет xml в макет папки
- переименовать window2
- добавить новую кнопку и добавить эту строку: android: onClick = "window2"
mainactivity.java
public void openWindow2(View v) {
//call window2
setContentView(R.layout.window2);
}
}
Ответ 7
Я сделал то же, что ответил user9876226. Единственное отличие состоит в том, что я обычно не использую onClickListener. Вместо этого я пишу следующее в xml файле: android:onClick="open"
open
- это функция, связанная с кнопкой. Затем просто создайте функцию open() в вашем классе деятельности. Когда вы нажимаете на кнопку, эта функция будет вызываться :) Кроме того, я думаю, что этот способ более удобен, чем использование слушателя.
Ответ 8
используйте следующий код, чтобы кнопка в Android Studio открыла уже существующее действие.
Button StartButton = (Button) findViewById(R.id.YOUR BUTTONS ID GOES HERE);
StartButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, YOUR ACTIVITY ID GOES HERE.class));
}
});
Ответ 9
public void onButtonClick(View view)
startActivity(new Intent (Current activity.this, IntentActivity.class));