1

ボタンを使用して、私が新しいアクティビティに取り組んでいるフラグメントを切り替えようとしています。私はオンクリックリスナーを使用してスイッチを試しています。開始アクティビティを使用するだけでなく、私はフラグメントマネージャーを使わなければならないかもしれないと思うが、私はこれをどのように使うべきか分からない。Androidスタジオ|使用方法フラグメントとアクティビティを切り替えるにはクリックしてください

これは私のコードです。

addPlayers.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     startActivity(new Intent(TeamManagementFragment.this,AddPlayer.class)); 
    } 
}); 

私が持っているエラーメッセージは、「コンストラクタを解決できません」である

あなたの助けをいただければ幸いです:)。 多くのありがとう、 エドワード。

答えて

0

を使用することができます有効なコンテキスト

addPlayers.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     startActivity(new Intent(v.getContext(), AddPlayer.class)); 
    } 
}); 

それから継承するクラスを参照するコンテキストのためのドキュメントページを参照してください: https://developer.android.com/reference/android/content/Context.html

+0

ペティはどうもありがとうございました!これは私のために働いた!関心のない私は、v.getContext()はそれがあるビューを取得することを意味しますか? –

+0

そうです! 'v'引数は実際にはどのビューがクリックされたのでしょうか?これは、同じOnClickListenerを多くのビューに適用できるからです。上記の例では、 'v'は' addPlayers'と等しくなります。 – petey

+0

私はやった!私は、新しいプレイヤーアクティビティの追加とチーム管理の間の切り替えを元に戻そうとしています。 startActivity(Intent(v.getContext()、TeamManagementFragment.class)); 私のエラーは方法を解決できないと言います。 –

1

私はAddPlayerがアクティビティだとします。 だから、彼らはありませんので、代わりに現在のTeamManagementFragmentインスタンスを使用してのnew Intent作成にあなたの最初の引数としてView v引数からコンテキストを使用し、AddPlayerを開始したいあなたの他の活動であると仮定すると、getActivity()代わりのTeamManagementFragment.this

0

だけでなく、私はあなたが活動およびフラグメントの概念を取得していないと思います。フラグメントは基本的にアクティビティによってホストされるビューであり、コンテナのアクティビティが有効である限り生きています。これらの2つの間を切り替える意図は使用できません。あなたはフラグメントに現在あるよう

0

これを試してみてください:

addPlayers.setOnClickListener(new View.OnClickListener() { 
@Override public void onClick(View v) { 
    getActivity().startActivity(new Intent(getActivity(),AddPlayer.class)); 
    } 
}); 
関連する問題