В моем приложении Android есть много кнопок.
В моем макете main.xml есть три кнопки.
Я знаю, как использовать кнопки для перехода от одной активности к другой, но я не знаю, как иметь несколько кнопок для одного действия, при этом каждый запуск отличается от другого.
Пример
main.xml
Button1 Button2
Main2.xml
Запущен кнопкой1
About.xml
Запущен Button2
Как сделать файл main.java так?
public class NL extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b1=(Button)findViewById(R.id.Button01);
Button b2=(Button)findViewById(R.id.Button02);
b1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myintent2 = new Intent(NL.this,Button1.class);
startActivity(myintent2);
}
});
b2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myintent2 = new Intent(NL.this,Button2.class);
startActivity(myintent2);
}
});
}
}
переместитесь из одного действия в другое с использованием намерения. Напишите этот код в кнопке "прослушиватель кнопок"
Это довольно широкий вопрос, поэтому мой ответ, вероятно, будет казаться одинаково широким.
1.) Первое, что нужно понять, - это построить свой макет. Вы говорите, что у вас есть макет с 3 кнопками. В определении для каждой из этих кнопок вам нужно назначить атрибут android: id. Это позволит вам позже подключиться к этой кнопке из вашей деятельности. Для получения дополнительной информации см. здесь
2.) После того, как у вас есть три кнопки, определенные с помощью android: id (позволяет использовать для обсуждения вопросы R.id.1, R.id.2 и R.id.3), вы хотите привязать объекты Java к этим элементам в вашем действии onCreate:
Button button3 = (Button) getViewById(R.id.3)
Сделайте это для своих 3 кнопок.
3.) Следующий шаг - подключить прослушиватель onClick к вашим кнопкам
button3.setOnClickListener(new OnClickListener(){
public void onClick(View v){
//place code to execute here
}
});
Как и в большинстве систем gui в java, этот механизм определяет код, который выполняется при нажатии кнопки. Если вы хотите запустить новую активность с этой кнопки, вы должны создать объект-замысел и запустить его, как:
Intent intent = new Intent(this, TheActivityClassYouWantToLaunch.class);
startActivity(intent);
Замените TheActivityClassYouWantToLaunch именем класса, который расширяет действие, которое вы хотите запустить. Чтобы узнать больше [ознакомьтесь с документацией по намерениям] (http://developer.android.com/reference/android/content/Intent.html)
Я знаю, что на это уже давно ответили, но если кто-то еще наткнулся на него, я решил, что я дам другой способ делать кнопки, которые я использую для своего собственного кода, используя onClick и View. onclick выполняется в файле xml, идя вниз к кнопке, которую вы хотите сделать кликом, и добавив строку:
android:onClick="title"
Если заголовок - это имя части файла класса активности java, которая идет с этим XML файлом. Затем в java файле вы добавите в открытый класс:
public void title(View buttonName) {
// Should take user to the next view when button pressed
Intent intent1 = new Intent(this, NextClass.class);
startActivity(intent1);
}
Где buttonName - это имя кнопки, в которую была добавлена часть onClick, а NextClass - имя файла java, к которому вы хотите получить доступ. Для ваших примеров в вашем Main.xml вы переходите к кнопке 1 и добавляете код onClick, затем переходите к Main.java и добавляете общедоступный код void, изменяя заголовок на все, что захотите, например launchMain2. В этом же .java вы измените NextClass.class на Main2.class.
Я использую это, потому что мне легко просто скопировать и пропустить его, так как у меня есть несколько страниц с несколькими кнопками на каждой странице моего приложения. Таким образом, для меня это помогло мне сэкономить время на работе над приложением.
i use this code
ImageButton bot1;
ImageButton bot2;
ImageButton bot3;
ImageButton bot4;
Intent intentbot1;
Intent intentbot2;
Intent intentbot3;
Intent intentbot4;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.currentactivity);
bot1= (ImageButton)findViewById(R.id.bot1);
bot2 = (ImageButton)findViewById(R.id.bot2);
bot3 = (ImageButton)findViewById(R.id.bot3);
bot4 = (ImageButton)findViewById(R.id.bot4);
{ final Intent intentbot1 = new Intent();
intentbot1.setClass(currentactivity.this, targetactivity.class);
bot1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
startActivity(intentbot1);
}});}
{
final Intent intentbot2 = new Intent();
intentbot2 .setClass(currentactivity.this, targetactivity.class);
bot2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
startActivity(intentbot2 );
}});}
{ final Intent intentbot3 = new Intent();
intentbot3 .setClass(currentactivity.this, targetactivity.class);
bot3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
startActivity(intentbot3 );
}});
}
{ final Intent intentbot4 = new Intent();
intentbot4 .setClass(currentactivity.this, targetactivity.class);
bot4.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
startActivity(intentbot4 );
}});
}
}