2012-06-13 3 views
1

다른 클래스의 한 클래스에있는 함수를 객체를 만들어 호출하려고합니다. 어떻게 든 작동하지 않습니다. 새 활동이로드되지 않습니다.다른 클래스의 한 클래스에있는 함수를 호출하는 방법은 무엇입니까?

내 자바 코드 :

public class MessagesActivity extends TabActivity { 

    public WorkEntryScreenActivity workEntryObject = new WorkEntryScreenActivity() ; 

    public void AddWorkEntryClick(View v) { 
     workEntryObject.newWorkEntry(); 
    } 
} 

다른 클래스 :

public class WorkEntryScreenActivity extends Activity { 

public void newWorkEntry() { 
    try { 
     Intent i = new Intent(this, WorkEntryActivity.class); 
     i.putExtra("CurDate", mDateDisplay.getText()); 
     i.putExtra("DD", String.valueOf(mDay)); 
     i.putExtra("MM", String.valueOf(mMonth)); 
     i.putExtra("YYYY", String.valueOf(mYear)); 
     startActivity(i); 
     finish(); 
    } catch (Exception e) { 
     System.out.println("Exception" + e.getStackTrace()); 
     Log.d(TAG, "Exception" + e.getStackTrace()); 
    } 
} 
} 
+1

http://stackoverflow.com/questions/10997996/why-arent-getters-preferred-when-accessing-variables-between-activities/10998128#10998128 가능성이있는, w.r.t. 답변. –

+1

활동의 인스턴스를 만드는 것은 (보통 자바 인 것처럼) Android 기본 사항이 누락되었음을 나타냅니다. 기본 가이드를 먼저 읽으십시오 (biovamp는 링크를 가리 킵니다). –

+0

@Arhimed 저는 안드로이드를 처음 접했고 그 이후로 많은 기회를 얻었습니다. 나는 여전히 다른 클래스에있는 함수를 호출하는 방법을 이해할 수는 없지만. 나는 대부분의 사람들이'MyTabActivity myTab = (MyTabActivity) getParent();를 사용하여 탭 전환을 발견 한 것처럼 사람들이 액티비티의 인스턴스를 만드는 몇 가지 예제를 보았습니다. '이 시도도했습니다 : 'public void AddWorkEntryClick (보기 v) { \t \t WorkEntryScreenActivity object = (WorkEntryScreenActivity) getParent(); \t \t object.newWorkEntry(); \t}'작동하지 않았습니다! 어떤 제안? – Harsh

답변

1

당신은 (는 C 아니라 ++) 먼저 workEntryObject를 작성해야합니다. 또한이

public WorkEntryScreenActivity workEntryObject=new WorkEntryScreenActivity(); 

처럼, 내가보기 엔 당신이 http://developer.android.com/guide/index.html

+0

와우! 나는 그것을 잃어 버렸다. 어쨌든 감사합니다. 이제 오류는 발생하지 않지만 새로운 활동을로드하지 않습니다. – Harsh

+0

새 활동을 만들려면 현재 활동의 'startActivity()'메소드를 사용하십시오. 이에 대한 내용은 http://developer.android.com/guide/topics/fundamentals/activities.html에서 확인할 수 있습니다. –

0

@biovamp가 올 Android 기본 사항을 읽어도록 권장한다. 메서드를 호출하려고하는 null 참조가있는 것 같습니다. 비 정적 메서드를 호출하려면 해당 개체의 인스턴스가 필요합니다.

메서드의 이름을 지정하면 응용 프로그램의 다른 부분에서 일부 UI를 다시 사용하려고하는 것처럼 보입니다. Android에서 그 목표를 달성하는 방법은 IntentsActivities입니다. 당신이 그것들에 익숙하지 않거나 그것을 사용하는 방법에 익숙하지 않다면, 나는 그것들을 연구 할 것을 강력하게 제안 할 것입니다.

관련 문제