フラグメントとアクティビティ間の通信の場合:
アクティビティ > フラグメント:
これを使用してフラグメントのパブリック メソッドを呼び出します。
TestFragment testFrag = (TestFragment) getFragmentManager().getFragmentById(R.id.testfragment);
if(testFrag != null && testFrag.isAdded())
testFrag.testMethod("Test");
フラグメント > アクティビティ
アクティビティにメッセージを送信するには、インターフェイスを使用する必要があるため、フラグメント クラスでこれを追加します: (どのメソッドにもありません)
public interface testInterface{
public void testMethod(String test);
}
testInterface mCallback;
@Override
public void onAttact(Activity a){
try{
mCallback = (testInterface) a;
}catch(Exception e){
//TODO
}
}
次に、任意のメソッドでこれを呼び出すことができます:
mCallback.testMethod("hello");
次に、アクティビティのためにそれを作成しimplements testInterface
、インターフェイスをインポートします
次に、このメソッドをアクティビティに含めます
@Override
public void testMethod(String testString){
}
:) 何でも聞いてください。
編集
あなたの質問を最初に読んだときから、これがあなたが望んでいたことだと思いました。
あなたが求めているのはonItemClickメソッドだけだと思いますよね?
だからあなたが持つことができるインターフェースで
public void onItemClicked(AdapterView<?> parent, View view, int position, long id);
次に、フラグメントで onItemClick が呼び出されたときに、これを使用できます
mCallback.onItemClicked(parent, view, position, id);
そして、アクティビティで、あなたが持つことができるインターフェースを実装していることを考えると
@Override
public void onItemClicked(AdapterView<?> parent, View view, int position, long id){
}