gpt4 book ai didi

java - 使用setContentView时多次定义函数

转载 作者:行者123 更新时间:2023-12-01 13:09:09 25 4
gpt4 key购买 nike

我对 Java 和 Android 开发非常陌生,我正在尝试创建一个小“测验”,在每个 View 上都有 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;
}

}

最佳答案

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

关于java - 使用setContentView时多次定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23030991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com