2012-06-09 2 views
5

한 변수에 값을 저장할 수 있습니다. 이제 그 변수를 조각에 전달하고 싶습니다.안드로이드에서 인 텐트를 사용하여 액티비티간에 데이터를 조각으로 전달하는 방법

다음 코드를 사용하면 조각을로드 할 수 있습니다.

public class AndroidListFragmentActivity extends Activity { 
Fragment2 f2; 
public static String itemname; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.apetiserfragement); 
    itemname=getIntent().getStringExtra("itemname"); 
    Bundle args=new Bundle(); 
    args.putString("itemname", itemname); 
    f2=new Fragment2(); 
    f2.setArguments(args); 

} 
} 

2 윈도우 (리스트 뷰에 대한) listfragment 연장 하나에 itemName에

출력은로 분할 (여기서 I는 XML 페이지를 사용하여 단편을 부하). 내가 Fragment2.class을 통과 할 itemName에이 클래스의 조각

Fragment2.xml

public class Fragment2 extends Fragment { 
String itemname; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 

    System.out.println(getArguments().getString("itemname")); 

    return inflater.inflate(R.layout.fragment2, container, false); 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 

} 

    } 

AndroidListFragmentActivity에 대한 하나.

+0

정확히 무엇이 문제입니까? 코드를 실행할 때 어떤 일이 발생하는지 설명하십시오. 오류가 있습니까? 그렇다면 logcat을 게시 하시겠습니까? 그 행동이 당신이 원하는 것과 어떻게 다른가요? –

+0

또한 XML 레이아웃을 게시하십시오. –

답변

5

fragment constructors 중 하나에 제공되는 번들을 사용하여 당신은 당신이 onCreateView()

예에서 원하는 getArguments()를 잘 수행하여 Bundle를 검색 할 수 있어야한다 :

YourFragment.instantiate(context,"fragName",yourBundleWithValue); 

그런 다음에를 내 조각 :

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    getArguments().getStringValue("name"); //Returns your string value 

    return inflater.inflate(R.layout.fragment2, container, false); 
} 
+1

제발 나를위한 샘플 코드를 줄 수 – naveen

+0

완료. 이 방법을 사용하거나 자신의 정적 생성자를 제공하여 단편을 인스턴스화해야합니다 (단, 후자는 금기 사항 임). – hwrdprkns

+0

이 클래스에 itemname 값을 저장했습니다. AndroidListFragmentActivity .please mycode를 참조하십시오. 코드가 새 코드이기 때문에 코드를 변경하십시오. fragments.please의 최신 버전입니다. YourFragment.instantiate (context, "fragName", yourBundleWithValue); 내 코드에 따라 변경할 수 있습니다. – naveen

-1

표시하려면 FragmentManager을 사용해야합니다. r Fragment.

+1

이 질문에 대한 답을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남겨 둡니다. – infused

+0

@infused 이것은 XY 문제입니다. OP는 이미'setArguments()'와'getArguments()'를 사용하고 있기 때문에 표시되는 프래그먼트를 보지 못하는 이유는'FragmentManager'를 사용하지 않기 때문입니다. –

+0

@infused 그리고 나는이 질문이 2 살인 것으로 나타났습니다 ... –

관련 문제