【问题标题】:Defining functions multiple times when using setContentView使用 setContentView 时多次定义函数
【发布时间】:2014-04-12 13:25:20
【问题描述】:

我对 Java 和 Android 开发非常陌生,我正在尝试创建一个小“测验”,在每个视图上都有 RadioButton 选项以及下一步和返回按钮。我正在使用下一步和后退按钮,但这似乎是一种非常冗长的方法。有没有一种方法可以定义一个函数并让它在该布局中工作,而不必每次使用后退按钮时都重新定义它。 IE。我在onCreate 中定义了nexButtonGPAbuttonClick(),但是当我到达activity_main_2_.xml 并将后退按钮设置为setContentView(activty_main.xml) 时,我不得不在setContentView(R.layout.activity_main) 中再次重新定义nextButtonGPAbuttonClick();。这是我的 .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;
    }

}

【问题讨论】:

  • 您到底想在nexButtonGPAbuttonClick() 函数中实现什么?这个问题还是有点不清楚。
  • 我有 5 个问题,每个问题都有一组选项和一个下一个和上一个按钮。所有的 nextButton();函数应该将用户带到下一个问题和所有 prevButton();函数应该将用户带到上一个视图。
  • 似乎只是一个新问题并不能证明开始一项新活动是合理的

标签: java android setcontentview


【解决方案1】:

启动一个新的 Activity 而不是调用 setContentView。这样后退按钮会自动将用户带回到上一个屏幕。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    相关资源
    最近更新 更多