単純すぎるかもしれませんが、正しい方法を見つけることができませんでした。
C++ ではinitWithParameter: xxx
、クラスをインスタンス化するように記述し、次に init で、初期化時に値を指定していくつかのインスタンス変数を設定できます。
Javaでは、それを行う方法がわかりません。現在、私は次のことを行っています。
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;
ps エクストラを入れる必要がなくなったことはわかっています。これは、2 つの SpecialScreen サブクラスがあり、このパラメーターを使用して常に BASEScreen を呼び出す前に行った方法です。