Как использовать IF с кнопкой в ​​java Android?

Я хочу сделать кнопку, которая переходит в новое действие, но в каком-то состоянии. если я использовал кнопку1, то показывал данные об А, а если использовал кнопку2, то отображал данные о Б.

Я пытался создать новую активность для каждой кнопки, но мне нужно создать новый класс, верно? вот почему я просто хочу использовать ЕСЛИ, как я уже говорил

Button move_found = findViewById(R.id.btn_found);
Button move_conc = findViewById(R.id.btn_conc);

move_found.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MakeupMenu.this, MakeupActivity.class);
                startActivity(intent);
            }
        });
move_conc.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MakeupMenu.this, MakeupActivity.class);
                startActivity(intent);
            }
        });

это мой код для каждой кнопки, как поставить IF для каждой кнопки? я должен поместить код IF здесь (MakeupMenu.class) или в новом действии с именем MakeActivity.class?

🤔 А знаете ли вы, что...
С Java можно создавать многопоточные серверы для обработки запросов клиентов.


46
2

Ответы:

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

Button move_found = findViewById(R.id.btn_found);
Button move_conc = findViewById(R.id.btn_conc);

move_found.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MakeupMenu.this, MakeupActivity.class);
                startActivity(intent);
            }
        });
move_conc.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //This intent also takes you to MakeupActivity
                //Intent intent = new Intent(MakeupMenu.this, MakeupActivity.class);

                //Instead, you probably want to point to a different activity
                Intent intent = new Intent(MakeupMenu.this, MakeActivity.class);
                startActivity(intent);
            }
        });

P.S. Узнайте об основных языковых конструкциях Java, а затем изучите Android, используя какой-нибудь пошаговый материал (любая хорошая книга по Android или сайт).


Решено

Я предлагаю вам использовать метод передачи данных через намерение. Это позволит MakeActivity получать данные от обеих кнопок и решать, какое представление отображать.

Используйте следующий код для ваших кнопок

move_found.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MakeupMenu.this, MakeupActivity.class);
            intent.putExtra("data,"button1");
            startActivity(intent)
        }
    });


move_conc.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MakeupMenu.this, MakeupActivity.class);
            intent.putExtra("data","button2");
            startActivity(intent);
        }
    });

Затем в MakeupActivity получите данные и выберите, что с ними показывать. Создайте 2 отдельных макета в папке res/layout. Назовем их layout1.xml и layout2.xml .\ layout1.xml предназначен для просмотра после нажатия кнопки 1, а layout2.xml — для просмотра другой кнопки. Теперь в вашем MakeupActivity.class напишите следующий код

Intent intent = getIntent();
    String data = intent.getStringExtra("data");


    if (data.equals("button1")){
        setContentView(R.layout.layout1);
    }
    if (value.equals("button2")){
        setContentView(R.layout.layout2);
    }