2013-11-11 5 views
0

У меня есть два вида деятельности (A и B). Активность A состоит из фрагмента F. Как передать результат из Activity B в Fragment F? Вот мой код:Передача результата от активности к фрагменту

Фрагмент F

public class FragmentF extends Fragment implements OnCLickListener { 

// my editText is in this fragmentf layout 
EditText editText; 

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

     View v = inflater.inflate(R.layout.fragmentf, container, false);    
     Button b = (Button) v.findViewById(R.id.to_actb); 
     b.setOnClickListener(this); 
     return v; 
    } 

    @Override 
    public void onClick(View v) { 

     Intent intent = new Intent(getActivity(), ActivityB.class); 
     startActivityForResult(intent, 1); 
    } 

    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
      super.onActivityResult(requestCode, resultCode, intent); 

      if (requestCode == 1) { 

      if(resultCode == ActivityB.RESULT_OK){  
       String hey = getActivity().getIntent().getStringExtra("hey.hello.MESSAGE"); 
       EditText editText = (EditText) getActivity().findViewById(R.id.text1); 
       editText.setText(hey); 
      } 
      } 
    } 
} 

активность B

public class ActivityB extends Activity { 

    public final static String EXTRA_MESSAGE = "hey.hello.MESSAGE"; 

.... 

    public void to_acta(View view) { 

     Intent intent = new Intent(this, ActivityA.class); 
     TextView textView = (TextView) findViewById(R.id.text); 
     String message = textView.getText().toString(); 
     intent.putExtra(EXTRA_MESSAGE, message); 
     setResult(RESULT_OK,intent); 
     finish();  
    } 

Моя проблема, когда я нажал "не to_acta" кнопку, ничего добавляется в моем EditText " text1" .

+1

Вообще 'OnActivityResult' не выполняется в' Fragment'. Поэтому, если вы хотите передать результат с помощью onActivityResult, он не выполнит этот метод. Поэтому, даже если вы передаете результат, он не будет отображаться в фрагменте, так как onActivityResult никогда не выполняется. – GrIsHu

+0

Это работает для меня .. – speedsir

+0

Что сработало для вас? – GrIsHu

ответ

-2

заменить

String hey = getActivity().getIntent().getStringExtra("hey.hello.MESSAGE"); 

с

String hey = data.getStringExtra(ActivityB.EXTRA_MESSAGE); 
+0

, почему он занижен? –

+0

Вы внимательно прочитали вопрос? Он просит передать результат в Фрагменте из активности, используя onActivityResult. И если вы знаете, что 'onActivityResult' не выполняется в' Fragment'. – GrIsHu

+0

@GrIsHu спасибо за ваше предложение ... Я собираюсь повредить его –

Смежные вопросы