android-studio - Android 作用域传递问题?
PHP中文网
PHP中文网 2017-04-17 17:44:33
0
9
462

我在写App的时候好多Activity都在做同一个事情,就是操作各个Activity的界面的同一个部分。
所以我希望把这些做同一个事情的相同代码拿出来做一个类的静态方法,下次需要做这个事情就直接调用,不要重复写同样的代码。
于是我这样做的:

就这样把Context传递过去了,但是获取不到那个Context的变量和方法,这个应该怎么实现啊?
难道我必须要在几个Activity写出相同的代码?

PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(9)
PHPzhong

1. 같은 방법을 BaseActivity으로 추상화합니다.

Ty80

활동 A에 공유 코드를 작성하면 공유 코드를 사용해야 하는 활동이 활동 A를 상속받습니다.

Ty80

Mvp 모드를 사용하면 논리 제어 레이어의 동일한 부분을 현재 레이어에 넣어 관리할 수 있습니다.

阿神

으아악

伊谢尔伦

이 방법이 어떤 용도로 사용되는지 알려주실 수 있나요? return은 void와 유사하므로 contxt를 통해 뭔가를 해야 합니다

Peter_Zhu

코드의 동일한 부분이 인터페이스와 해당 로직인 경우 Fragment를 사용하면 됩니다. 왜 전달해야 합니까? Context는 일반적으로 너무 결합된 특정 활동으로 하향 변환하는 대신 Context 메서드를 사용하기 위해서만 전달됩니다. 코드의 동일한 부분이 작은 코드 조각인 경우 코드를 BaseActivity에 넣고 다른 활동이 이를 상속하도록 합니다.

洪涛

아직 Java를 시작하지 않으셨다면 기초부터 다져보세요

黄舟

1. 공개 메소드이고 구현된 함수가 동일한 경우:
Activity의 기본 클래스인 BaseActivity를 작성하고 하위 클래스가 호출할 기본 클래스에 공개 메소드를 작성합니다.
2. 공용 메소드가 구현됩니다. 함수는 다르지만 메소드 이름은 동일합니다.
기본 클래스인 BaseActivity도 생성되고 추상 메소드가 하위 클래스에서 작성됩니다.
PS: 전달 context는 Activity에서 객체를 가져오지 못할 것입니다. 최소한 ((Activity)context)

라고 작성해야 합니다.
刘奇

추상적인 부모 클래스를 작성하세요. 거기에 공유 메소드를 넣으십시오.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿