option menu를 공통(?)으로 사용을 하려고,  별도 클래스 파일을 생성했는데,

 

전역변수 호출하는데서 오류가 발생합니다.

 

다른 파일에서는 전역변수를 사용하고 있습니다.

 

 

----------- (s) manifest ------------

      <activity android:name=".OptionMenu"      
         android:label="OptionMenu"> 
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity> 

----------- (e) manifest ------------

 

----------- (s) option menu ------------


public class OptionMenu extends Activity{

    public static final int ID_GROUP_CHILD     = 1;
   
 public static final int ID_DIARYWRITE = Menu.FIRST + 1;
 public static final int ID_CHILD_1 = Menu.FIRST + 2;
 public static final int ID_CHILD_2 = Menu.FIRST + 3;
 
 public boolean optionMenu(Menu menu) {

  menu.add(Menu.NONE, ID_DIARYWRITE, 0, "쓰기");
  
  SubMenu mChild = menu.addSubMenu("선택1");
  mChild.add(ID_GROUP_CHILD, ID_CHILD_1, 0, "1번.");
  mChild.add(ID_GROUP_CHILD, ID_CHILD_2, 0, "2번..");

  return true;
 }

 public OptionMenu(Activity actTmp) {
  act = actTmp;
 }

 public boolean initSelected(MenuItem item) {

  switch (item.getItemId()) {

  case ID_CHILD_1:
   childChange("1");
   return true;

  case ID_CHILD_2:
   childChange("2");
   return true;


  default:
   return false;
  }
 }

 private void childChange(String _child){
  MemberInfo info = (MemberInfo)getApplicationContext();       <==  오류 : ERROR/AndroidRuntime(1514): java.lang.NullPointerException
  info.setChild(_child);
 }

 

}

 

----------- (e) option menu ------------

 

 

호출하는 페이지

----------- (s) 호출 페이지 ------------

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  boolean result = new OptionMenu(this).optionMenu(menu);
  return result;
 }

 @Override
 public boolean onPrepareOptionsMenu(Menu menu){
  boolean result = super.onPrepareOptionsMenu(menu);  
  return result;
 }
 
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
  boolean tmp = new OptionMenu(this).initSelected(item);

  if (tmp) return tmp;
  else return super.onOptionsItemSelected(item);

 }

----------- (e) 호출 페이지 ------------