2014-01-09 2 views
0

액티비티의 특정 값을 안드로이드의 조각으로 전달하고 싶습니다. 여기 은 일부 코드입니다 : -액티비티의 값을 조각 안드로이드로 전달

MainActivity : -

PlaceDialogFragment dialogFragment = new PlaceDialogFragment(place,dm); 

조각 - 조각의 생성자를 사용

public PlaceDialogFragment(Place place, DisplayMetrics dm){ 
     super(); 
     this.mPlace = place; 
     this.mMetrics = dm; 
    } 

나에게 오류를 제공합니다 : -

Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead 

만약 내가 가진 생성자를 대체 : -

public static final DialogFragment newInstance(Place place, DisplayMetrics dm) 
{ 
    DialogFragment fragment = new DialogFragment(); 
    Bundle bundle = new Bundle(2); 
    bundle.putParcelable("Place", place); 
    bundle.putFloat("Metrics", dm.density); 
    fragment.setArguments(bundle); 
    return fragment ; 
} 

(210) 나는 MainActivity.Java에 오류가 : -이

The constructor PlaceDialogFragment(Place, DisplayMetrics) is undefined 

어떻게이 문제를 해결합니까?

+0

조각에는 인수 생성자가 없어야한다. 알렉스가 당신의 질문에 대답했습니다. have look @ @ http://developer.android.com/reference/android/app/DialogFragment.html – Raghunandan

답변

1

새 방법을 사용하도록 활동을 변경하십시오.

PlaceDialogFragment dialogFragment = PlaceDialogFragment.newInstance(place, dm); 
+0

지도 자습서를 자세히 읽었습니까? 그것을 해결할 수 없다면, 이것에 연결되어 있지 않은 새로운 질문을 만드십시오. – alex

1

이 방법으로이 작업을 수행 할 수 있습니다

From Activity you send data with intent as: 

Bundle bundle = new Bundle(); 
bundle.putString("edttext", "From Activity"); 
// set Fragmentclass Arguments 
Fragmentclass fragobj = new Fragmentclass(); 
fragobj.setArguments(bundle); 

및 조각 onCreateView 방법에

:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    String strtext = getArguments().getString("edttext");  
    return inflater.inflate(R.layout.fragment, container, false); 
} 
관련 문제