2014-07-25 3 views
0

저는 Android 앱을 개발 중입니다. 그리고 내 클래스의 관계는 다음과 같습니다 : 나는 그것에 대해 몇 가지 문제납니다
http://imgur.com/zJlDt5j.jpgAndroid 확장 활동

. 가장 큰 것 :

1) 컨텍스트으로 작업. SocialNetWorkClass에는 SQLiteDatabase 객체가 있습니다. 그러나 나는 그것에 대해 어떻게 작동해야할지 모르겠다. 왜냐면 나는 컨셉을 FacebookClass에서 생성자와 함께 전달할 수 없기 때문이다.

2) On FacebookClass BaseClass 객체 (슈퍼 수퍼 클래스)에 액세스하지 않아서 findViewById와 같은 메서드를 사용할 수 없습니다. Activity 메서드를 사용할 수없는 경우와 같습니다.

이 추가적으로 정보 :

  • BaseClass로는 android.app.Activity에서 연장;
  • BaseClass 및 SocialNetworkClass는 추상 클래스입니다.
  • 이 계층 구조를 사용하려는 의도는 코드 생성이 적어지고 코드를 재사용합니다.

누구든지 도와 줄 수 있습니까? 고마워요!

+0

컨텍스트를 전달할 수없는 이유는 무엇입니까? – zgc7009

+0

@ zgc7009, 왜냐하면 FacebookClass에서 SocialNetworkClass로 컨텍스트를 전달하기 때문입니다. 나는 생성자 메서드에서 시도했지만 "생성자를 명시 적으로 호출하는 동안 'this'나 'super'를 참조 할 수 없다는 오류가 발생했습니다. 컨텍스트를 전달하는 유일한 방법은 생성자에서 보내는 것입니다. 이유 : 부모로부터 생성자 메서드를 호출 할 때 부모 (SocialNetworkClass) 클래스 내부의 객체를 채우기 위해 테이블의 일부 데이터를 선택해야합니다. –

+0

log @ zgc7009는 다음과 같습니다. http://pastebin.com/xCepbaNk –

답변

1
  1. 당신은 그들이 모두 Context를 확장 Activity을 확장하기 때문에 수업의에 Context을 통과 할 필요가 없습니다. 모든 수업은 Context의 방법에 액세스 할 수 있습니다. 사이드 노트 : 안드로이드의 ContentProvider을 사용하여 SQLiteDatabase를 관리하는 것을 고려하십시오. 직접 FacebookClass에서 findViewById()를 호출 할 수 있습니다 ActivityFacebookClass 이후 1과 동일 http://developer.android.com/guide/topics/providers/content-providers.html

  2. 을 확장합니다.

+0

그러나 findViewById()를 호출하면 오류가 발생합니다. –

+0

보세요 : http://pastebin.com/xCepbaNk –

+0

'findViewById()'전에'setContentView()'를 호출 했습니까? – gabrielwong

관련 문제