Определение функций несколько раз при использовании setContentView

StackOverflow https://stackoverflow.com//questions/23030991

  •  21-12-2019
  •  | 
  •  

Вопрос

Я новичок в разработке для Java и Android и пытаюсь создать небольшую «викторину», которая RadioButton выбор в каждом представлении, а также кнопки «Далее» и «Назад».Я заставляю кнопки «Далее» и «Назад» работать, но это кажется очень трудоемким способом сделать это.Есть ли способ определить функцию один раз и заставить ее работать в этом макете без необходимости переопределять ее каждый раз, когда я использую кнопку «Назад».Т.е.У меня есть nexButtonGPAbuttonClick() определены в onCreate но когда я доберусь до activity_main_2_.xml и установите кнопку «Назад» на setContentView(activty_main.xml), мне придется переопределить это nextButtonGPAbuttonClick(); снова в этом setContentView(R.layout.activity_main).Вот мой файл .java.Любое руководство было бы чрезвычайно полезно.

package com.example.studentadvisorapp;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;


public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
        nextButtonGPAbuttonClick(); 
    }

    private void nextButtonGPAbuttonClick() {
        //Get reference to button
        Button nextButtonGPA = (Button) findViewById(R.id.next_button_gpa);

        //set click listener
        nextButtonGPA.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            setContentView(R.layout.activity_main_2);
            prevButtonHoursEnrolledbuttonClick();
            nextButtonHoursEnrolledbuttonClick();
        }

        private void prevButtonHoursEnrolledbuttonClick() {
            //Get reference to button
            Button prevButtonHoursEnrolled = (Button) findViewById(R.id.prev_button_hours_enrolled);

               //set click listener
           prevButtonHoursEnrolled.setOnClickListener(new View.OnClickListener() {
               @Override
              public void onClick(View v) {
                      setContentView(R.layout.activity_main);
                    nextButtonGPAbuttonClick();
              }
              });
           }

           private void nextButtonHoursEnrolledbuttonClick() {
             //Get reference to button
                Button nextButtonHoursEnrolled = (Button) findViewById(R.id.next_button_hours_enrolled);

             //set click listener
             nextButtonHoursEnrolled.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                setContentView(R.layout.activity_main_3);
                    nextButtonHoursWorkingbuttonClick();
                prevButtonHoursWorkingbuttonClick();
                 }

                 private void nextButtonHoursWorkingbuttonClick() {
                    //Get reference to button
                Button nextButtonHoursWorking = (Button) findViewById(R.id.next_button_hours_working);

                //set click listener
                nextButtonHoursWorking.setOnClickListener(new View.OnClickListener() {
                    @Override
                public void onClick(View v) {                setContentView(R.layout.activity_main_4);      
                }
            });
        }

        private void prevButtonHoursWorkingbuttonClick() {
            //Get reference to button
            Button nextButtonHoursWorking = (Button) findViewById(R.id.prev_button_hours_working);
            //set click listener
            nextButtonHoursWorking.setOnClickListener(new View.OnClickListener() {
                @Override
            public void onClick(View v) {                                setContentView(R.layout.activity_main_2);                                     prevButtonHoursEnrolledbuttonClick();                            nextButtonHoursEnrolledbuttonClick();

            }
        });
    }                               
});
}
});
}




    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
Это было полезно?

Решение

Запустите новое действие вместо вызова setContentView.Таким образом, кнопка «Назад» автоматически вернет пользователя на предыдущий экран.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top