2016-04-22 11 views
0

を返すにはnullになり、私は2番目の活動がそれに追加の断片を持っているアンドロイド:グローバル変数は、私がフラグメントを持って、前のフラグメントに

private void openComputationWindow(final int pos) { 

// code here 

    result = new Button(mActivity); 
    result.setText("Select"); 
    result.setTextColor(Color.WHITE); 
    result.setPadding(0, 30, 0, 20); 
    layout.addView(result); 

    result.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(getActivity(), SecondActivity.class); 
      getParentFragment().startActivityForResult(intent, 1); 
     } 
    }); 
    }); 

// code here 

} 

を使用して結果のために活動を開始し、そこから私のアプリではAは言います。この断片では、いくつかの操作を実行し、その結果を以前の操作に戻します。

Intent intent = new Intent(); 
        FragmentManager fm = getActivity().getSupportFragmentManager(); 
        for(int i = 0; i < fm.getBackStackEntryCount(); ++i) { 
         fm.popBackStack(); 
        } 
        getActivity().setResult(1, intent); 
        getActivity().finish(); 
       } 

問題は、私のフラグメントAに私はTextViewの結果、私は意図を立ち上げたのと同じのTextViewでのsetTextに、このデータを使用することです。このtextViewをグローバル変数として宣言し、onActivityの結果内でアクセスできるようにします。しかし、テキストの結果をtextViewに設定するときに、NULLポインタ例外が発生します。私はなぜそれがnullになるのかわかりません、フラグメントが再初期化されていますか?私は以前同様の仕事をしていますが、私は問題に直面しませんでした。誰かが私を助けてくれますか?ありがとう!!

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     result.setText(path); 
    } 

編集:私は、私は私のアプリでは、他の部分にフラグメントを再利用していると私はそこに同じ機能を実行し、それがあそこに完璧に動作することを言及する必要があります。しかし、私はわずかな違いがあります。私は断片の中でホストされているビューページャーを持っています。私は断片Aをビューページのタブの1つとして使用していますが、他のビューページのタブの子にはBと言うことができます。

+0

フラグメントに完全なコードを追加します。 – USKMobility

+0

'result'はいつ初期化されますか? –

+0

idが正しいかどうかを確認してください。 – MrRobot9

答えて

-1

私はどこに見えませんか変数結果が初期化されています。 このように初期化する必要があります:

TextView result =(TextView)findViewById(R.id.YourTextView);

関連する問題