Fragmentは入門から精通したActivityまでFragmentのイベントに応答する③
ActivityでFragmentのイベントに応答する
fragmentでいくつかのコードを実行したい場合、このコードはactivityに入れて実行したい場合があります.ではactivityのこのコードはどのようにfragmentで起動したのでしょうか.インタフェースを使用する方法で、この機能を実現することができます.以下にいくつかのステップに分けてこの機能に到達します.
①インターフェースの作成
/** * Created by qin on 2016/1/1. * fragment activity */
public interface SendMessageCommunitor {
/** fragment * @param msg * */
void sendMessage(String msg);
}
②fragmentで、このインタフェースを宣言する
//...
private SendMessageCommunitor sendMessage;
//...
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
sendMessage = (SendMessageCommunitor) activity;
}
③activityでimplementというインタフェースを実現し、抽象的な方法を実現する
public class MainActivity extends AppCompatActivity implements SendMessageCommunitor {
//...
@Override
public void sendMessage(String msg) {
//...
}
④fragmentで呼び出す
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendMessage.sendMessage("open");
}
});
//...