은 너무 간단 할 수도 있지만 올바른 방법을 찾지 못했습니다.initWithParameter와 같은 매개 변수를 사용하여 Java onCreate를 작성하십시오. C++
C++에서는 initWithParameter: xxx
을 작성하여 클래스를 인스턴스화 한 다음 init에 init 시간에 값이 제공된 인스턴스 변수를 설정합니다.
자바에서는 어떻게해야할지 모르겠다. 현재 내가 다음을 수행하십시오
public class SpecialScreen extends BASEScreen{
private static final int ACTIVITY_1 = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //create the instance
defineScreenType (ACTIVITY_1); //second call to set the instance variable
presentOnScreen();
}
동안을 BASEScreen에 : 이것은 그 일을하는 가장 좋은 방법이 될 수 없습니다
public class BASEScreen extends Activity {
private Integer activityCode; // which activity should I do?
@Override
public void onCreate(Bundle savedInstanceState) { // the creation
super.onCreate(savedInstanceState);
}
// the setting of the instance variable
public void defineScreenType(int screenID) {
activityCode = screenID;
}
. 더 나은 방법?
감사 BASEScreen 내 SpecialScreen의 호출을 표시하기 위해 추가
는 :
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
Intent i;
switch (item.getItemId()) {
case OTHER_PAGE_ID:
//
if (activityCode == ACTIVITY_1) {
i = new Intent(this, SpecialScreen2.class);
i.putExtra("Task", ACTIVITY_2);
startActivityForResult(i, ACTIVITY_2);
finish();
} else {
i = new Intent(this, SpecialScreen1.class);
i.putExtra("Task", ACTIVITY_1);
startActivityForResult(i, ACTIVITY_1);
finish();
}
return true;
추신 : 내가 추가 퍼팅 더 이상 필요하지 않은 것을 알고있다. 이것은 두 개의 SpecialScreen 서브 클래스가 있고 항상이 매개 변수로 BASEScreen을 호출하기 전에 제가 한 방식입니다.
안드로이드 질문으로 태그가 붙은 것처럼 보입니다. –
@ user387184 : 무엇을하려고합니까? '사용자가 버튼 1을 누르고, 활동 1을 시작하고, 사용자가 버튼 2를 누르고, 활동 2를 시작합니다'와 같은 것입니까? 사용자 선택이나 다른 조건에 따라 다른 활동을 시작 하시겠습니까? – Squonk
예 맞습니다 – user387184