我无法弄清楚如何在使用 Java 时分配 onGifSelected。 https://developers.giphy.com/docs/sdk#android 我创建了一个可以正确显示 Giphy 对话框的按钮,但是当我选择 gif 时没有任何反应(我必须实现该功能)。
gifBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
GiphyDialogFragment.Companion.newInstance(gphSettings).show(getSupportFragmentManager(), "this");
gifSelectionListener.onGifSelected(media);
gifSelectionListener.onDismissed();
}
});
即使我在类(class)开头声明了“media”,我也会收到以下错误。
java.lang.NullPointerException: Attempt to invoke interface method 'void com.giphy.sdk.ui.views.GiphyDialogFragment$GifSelectionListener.onGifSelected(com.giphy.sdk.core.models.Media)' on a null object reference
at com.example.alexevangelou.bumpr.MessageActivity$5.onClick(MessageActivity.java:196)
最佳答案
在显示对话框 fragment 之前初始化 api key :
Giphy.INSTANCE.configure(getActivity(), your_key, false);
GPHSettings gphSettings = new GPHSettings();
GiphyDialogFragment gdl = GiphyDialogFragment.Companion.newInstance(gphSettings);
gdl.setGifSelectionListener(new GiphyDialogFragment.GifSelectionListener() {
@Override
public void onGifSelected(@NotNull Media media) {
Image image = media.getImages().getFixedWidth();
String gif_url = image.getGifUrl();
}
@Override
public void onDismissed() {
}
});
gdl.show(getActivity().getSupportFragmentManager(), "this");
也适用于 fragment 上下文。
关于java - 如何分配onGifSelected?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56926209/