2016-06-30 1 views
1

저는 안드로이드를 처음 접했기 때문에이 쉬운 매개 변수 전달 방법을 권장하지 않습니다.간단한 getter setter로 객체를 조각으로 전달하지 않는 이유는 무엇입니까?

class DemoFragment extends Fragment{ 
    private MyObject myObject; 
    public void setMyObject(MyObject myObject){ 
     this.myObject = myObject; 
    } 
} 

DemoFragment fragmentDemo = new DemoFragment(); 
fragmentDemo.setMyObject(myObject); 
+0

누가 그렇게 말했습니까? –

+2

Farhad는 관련없는 태그를 추가하지 않습니다. –

+0

추가 할 태그가 더 좋은 경우 편집 할 수 있습니다. –

답변

1

Fragments에 전달되는 매개 변수에 Android가 제공하는 메커니즘은 Activity to Activity 데이터 전달과 동일한 기술인 Bundles를 사용합니다.

조각을 만들 때 원하는 키 - 값으로 setArguments(Bundle bundle) 메서드를 호출하십시오.

또 다른 장점은 방향 변경과 같이 장치의 구성 변경 중에이 인수를 유지할 수 있다는 것입니다.

게터와 세터를 사용하는 것은 일반적으로 좋지 않지만 휠을 재발견하기 전에 네이티브 API를 최대한 활용하는 것이 좋습니다.

2

간단한 설정 도구 대신 번들을 사용하는 이유는 무엇입니까?

장치의 화면을 회전하면 (방향 변경 또는 구성 변경) 조각 DemoFragment이 파괴 된 다음 Android에서 다시 생성됩니다. 따라서 설정자를 통해 제공된 경우 회전 후 DemoFragment.myObject의 내용이 손실됩니다.

비 직관적 인 "번들"정보는 이 아니며 화면 회전 후이 손실됩니다. DemoFragment가 다시 생성되면 번들에서 데이터를 다시 수신하므로 DemoFragment.myObject이 필요한 매개 변수로 다시 채워집니다.

자세한 내용은 클래스 멤버는 다음 세터 괜찮습니다 "화면 회전"후 분실 것을 https://developer.android.com/training/basics/activity-lifecycle/index.html

이 경우 아무튼-t 사항 참조하십시오.

관련 문제