【发布时间】:2017-06-30 07:12:46
【问题描述】:
我在创建 google api 客户端连接首选项屏幕时遇到了问题。 google api 客户端在 oncreateView() 方法中连接成功,但我的问题是 google api 客户端必须在偏好开关打开时连接 google api 应该连接。
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
将上面的内容放在 oncreateView() 中时效果很好。
record.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValues) {
if (((Boolean) newValues)) {
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
Toast.makeText(getActivity(), "Connection On", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getActivity(), "Connection OFF", Toast.LENGTH_SHORT).show();
}
return true;
}
});
在上面的代码中,google api 客户端连接放置在首选项开关中不起作用,正在发生异常。请帮助我如何解决这个问题。
单击首选项开关时会显示此异常
E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
06-30 12:45:59.810 4029-4029/com.seyali.callLog E/MessageQueue-JNI: java.lang.ClassCastException: com.seyali.callLog.SettingsActivity cannot be cast to com.google.android.gms.common.api.GoogleApiClient$ConnectionCallbacks
at com.seyali.callLog.PreferenceFragments$4.onPreferenceClick(PreferenceFragments.java:233)
at android.preference.Preference.performClick(Preference.java:996)
at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:249)
【问题讨论】:
-
在此处发布异常
-
@akhilesh0707 我发布了异常
-
这是指当前上下文。尝试检索应用程序上下文并应用于接受上下文的方法
-
@Stallion 我试过你的答案,不工作
-
@Stallion 实现 onCreateview() 时 google api 连接成功,但是当放在 onclick 上的首选项开关时它不起作用,显示异常。
标签: android android-googleapiclient