Как иметь несколько кнопок в одном упражнении

1

В моем приложении Android есть много кнопок.

В моем макете main.xml есть три кнопки.

Я знаю, как использовать кнопки для перехода от одной активности к другой, но я не знаю, как иметь несколько кнопок для одного действия, при этом каждый запуск отличается от другого.

Пример

main.xml

Button1 Button2

Main2.xml

Запущен кнопкой1

About.xml

Запущен Button2

Как сделать файл main.java так?

Теги:

4 ответа

6
Лучший ответ
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);

                }
            }); 
    }
}

переместитесь из одного действия в другое с использованием намерения. Напишите этот код в кнопке "прослушиватель кнопок"

  • 0
    Работает отлично! Спасибо!
5

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

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)

1

Я знаю, что на это уже давно ответили, но если кто-то еще наткнулся на него, я решил, что я дам другой способ делать кнопки, которые я использую для своего собственного кода, используя 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.

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

0
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 );
      }});
    }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню