سؤال

أنا جديد تمامًا في مجال تطوير Java وAndroid وأحاول إنشاء "اختبار" صغير يتضمن ذلك RadioButton التحديدات في كل عرض بالإضافة إلى زر التالي والرجوع.أقوم بتشغيل الزرين التالي والخلفي ولكن يبدو أنها طريقة طويلة جدًا للقيام بذلك.هل هناك طريقة يمكنني من خلالها تحديد وظيفة مرة واحدة وجعلها تعمل في هذا التخطيط دون الحاجة إلى إعادة تعريفها في كل مرة أستخدم فيها زر الرجوع.أي.أملك nexButtonGPAbuttonClick() المحددة في onCreate ولكن عندما أصل إلى ذلك activity_main_2_.xml واضبط زر الرجوع على setContentView(activty_main.xml), ، لا بد لي من إعادة تعريف ذلك nextButtonGPAbuttonClick(); مرة أخرى في ذلك setContentView(R.layout.activity_main).هنا ملف جافا الخاص بي.أي توجيه سيكون مفيدا للغاية.

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