2016-11-30 5 views
1

フラグメントのメソッド内に実装するコールバックのコンテキストを取得する方法:私はフラグメントのための次のヘッダを定義した

public class AllVideosFragment extends Fragment implements AutomaticCallback{ 

この断片の内部では、私はスピナーを処理するために、次の機能があります。

// Listener called when spinner item selected 
     spinnerLanguages.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parentView, View v, int position, long id) { 
       // Get selected row data to show on screen 
       String language = ((TextView) v.findViewById(R.id.tvSpinnerRow)).getText().toString(); 

       if(language.equals(getString(R.string.str_en))) 
        Hawk.put(Config.TV_LANGUAGE, "en"); 
       if(language.equals(getString(R.string.str_es))) 
        Hawk.put(Config.TV_LANGUAGE, "es"); 

       //We need to retrive data again 
       new AutomaticRequest().getLives(String.valueOf(Hawk.get(Config.TV_LANGUAGE)), **CONTEXT OF THE CALLBACK**); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> parentView) { 
       // your code here 
      } 

     }); 

私は、「これを」使用することができ、スピナーハンドル法の外に方法を持っているだろうが、内部の私は、私が使用する必要がわからない場合。

new AutomaticRequest().getLives(String.valueOf(Hawk.get(Config.TV_LANGUAGE)), this); 

"this"の代わりにどのメソッドを呼び出す必要がありますか?

ありがとうございました。

+0

getactivity()を使用します。 –

答えて

2

あなたは匿名の範囲にあり、thisは範囲を参照します。あなたが明示的に

AllVideosFragment.this 
+1

ありがとうMurat – MAOL

-2

AllVideosFragment.this.getActivity(この場合はそれに名前を付ける必要がありthis外側を通過したい場合)。

-1

答えは次のとおりです。

new AutomaticRequest().getLives(String.valueOf(Hawk.get(Config.TV_LANGUAGE)), getActivity().this); 
+0

もう一度質問をお読みください... – Selvin

1

これはあなたの現在のコールバックのコンテキストを与えるgetActivity()あなたのフラグメントがホストされている上、活動状況を指しながら、FragmentName.thisは、フラグメントコンテキストを参照します。簡単に言うと、Context contextをグローバルスコープにするには、断片 'onViewCreated()のようにcontext = getActivity()のように初期化し、断片のどこにでも使用してください。

+0

この回答を改善するにはどうすればいいですか?それとも何が隠されていたのでしょうか? –

+0

また、答えに否定的な評価を付ける場合は、一度お読みください。しかし、ありがとう:) –

+0

申し訳ありませんが、私は盲目でした:) ...次回はコードをマークする... :)また、文脈に関するものは不必要なものです – Selvin

関連する問題