2013-07-26 2 views
2

다른 애플리케이션에서받은 메시지를 수신하는 응용 프로그램에서 블루투스 서비스로 작업하고 있습니다. 내 FragmentActivity에서, 나는이 메시지를 얻을 수있는 핸들러를 사용하고 있습니다 :데이터를 단편 작업에서 단편으로 전송

FragmentActivity : 나는 데이터를 얻을 수와 조각에 전송하고자하는이 Handler에서

public final Handler mHandler = new Handler() { 

     @Override 
     public void handleMessage(Message msg) { 
      switch (msg.what) { 

        //my code 

        case MESSAGE_READ: 
         byte[] readBuf = (byte[]) msg.obj; 
         byte[] alpha = null; 
         alpha=readBuf; 

         if(alpha!=null){ 
          //my code.. 
       } 
     } 
    } 

. 나는 번들을 사용하려했지만 작동하지 않습니다 ..

내가 노력 코드 : FragmentActivity에서

:

Intent intent = new Intent(); 
intent.setClass(getApplicationContext(), General.class); 
Bundle bundle=new Bundle(); 
bundle.putInt("battery", bat); 
intent.putExtra("android.intent.extra.INTENT", bundle); 

조각에서 :

Bundle bundle = getActivity().getIntent().getExtras(); 
if (bundle != null) { 
int mLabel = bundle.getInt("battery", 0); 
Toast.makeText(getActivity(), "tottiti: "+mLabel, Toast.LENGTH_SHORT).show(); 
}else{ 
Toast.makeText(getActivity(), "prout", Toast.LENGTH_SHORT).show(); 
} 

응용 프로그램입니다 "prout"을 반환합니다. 즉, FragmentActivity에서 데이터를 가져올 수 없습니다.

fragmentActivity에서 데이터를 가져 와서 조각으로 전송하는 다른 방법이 있습니까?

는 작성시 조각에 데이터를 전달할 필요가 있다고 가정하면 당신의 도움이

답변

4

, 당신은 조각에 데이터를 전달하기 위해 setArguments() 사용할 수 있으며, getArguments() 해당 데이터를 읽어 주셔서 감사합니다.

Bundle bundle = new Bundle(); 
bundle.putInt("battery", bat); 
MyFragment fragment=new MyFragment(); 
fragment.setArguments(bundle); 

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
ft.add(R.id.fragment_container,fragment); 
ft.commit(); 

그런 다음 조각의 onCreate() 방법 :

Bundle bundle=getArguments(); 
int mLabel = bundle.getInt("battery", 0); 

하지만 조각이 이미 생성 된 경우, 다음과 같은 뭔가를 당신이 데이터를 전달하는 데 사용할 조각 내부의 방법을 만들 수 이 :

fragment.setBattery(bat); 
+0

사실 배터리 데이터를 보려면 내 옵션 메뉴 (내 FragmentActivity에 있음)에서 연결된 장치의 배터리 상태를 가져 오는 버튼을 사용해야합니다. 그럼 내 조각에는 버튼이 있습니다.이 버튼을 클릭하면 fragmentActivity에서 얻은 배터리 상태 값을 프로그램에서 얻으려고합니다. 코드를 변경했지만 작동하지 않습니다. – Mirelvi

+0

ft.add (R.id.fragment_container, fragment)를 사용할 수 없습니다. 왜냐하면 나는 내 조각을위한 ID를 정의하지 않았기 때문이다. 이 버튼을 사용하여 데이터를 가져와야하기 때문에 생성시 데이터를 가져올 수 없습니다. – Mirelvi

+0

활동에 배터리 데이터를 저장하려고합니다. 'FragmentActivity'에 옵션 메뉴를 클릭하면 거기에 데이터를 저장하는 필드가 있습니다. 그런 다음'Fragment' 버튼을 클릭하면 해당 필드를 읽을 수 있습니다 :'((MyActivity) getActivity()). getBatteryData()' –

관련 문제