Java方法-缺少返回语句
所以我发现了很多关于这个问题的例子,但是解决这个问题的方法似乎有所不同。因此,我在这里寻找解决我的具体问题的方法 这是我的密码:Java方法-缺少返回语句,java,android,Java,Android,所以我发现了很多关于这个问题的例子,但是解决这个问题的方法似乎有所不同。因此,我在这里寻找解决我的具体问题的方法 这是我的密码: package com.example.frederik.snapsule; import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGrou
package com.example.frederik.snapsule;
import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;
public class MainActivity extends Activity {
LoginButton login;
TextView info;
CallbackManager callbackManager;
//Creating and initializing the feature(Code from Facebook install guide)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext()); //Calls for the facebook feature
}
@Override
public View onCreateView(
LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.content_main, container, false);
login = (LoginButton) view.findViewById(R.id.login_button);
login.setReadPermissions("user_friends");
// Callback registration
login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException exception) {
// App code
}
});
}
}
package com.example.frederik.snapsule;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.TextView;
导入com.facebook.CallbackManager;
导入com.facebook.facebook回调;
导入com.facebook.facebook异常;
导入com.facebook.FacebookSdk;
导入com.facebook.login.LoginResult;
导入com.facebook.login.widget.LoginButton;
公共类MainActivity扩展了活动{
登录按钮登录;
文本视图信息;
CallbackManager CallbackManager;
//创建和初始化该功能(Facebook安装指南中的代码)
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
FacebookSdk.sdkinInitialize(getApplicationContext());//调用facebook功能
}
@凌驾
公共视图onCreateView(
充气机,
视图组容器,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.content\u main,container,false);
login=(LoginButton)view.findviewbyd(R.id.login_按钮);
login.setReadPermissions(“用户朋友”);
//回调注册
registerCallback(callbackManager,newfacebookcallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
//应用程序代码
}
@凌驾
公开作废{
//应用程序代码
}
@凌驾
public void onError(facebook异常){
//应用程序代码
}
});
}
}
在最后的第二个“}”中,我得到了错误“Missing return statement”,但在我看来它似乎是正确的 修复此错误的方法总是相同的:当方法具有返回类型而不是所有代码路径返回该类型的值时,会发生错误。
onCreateView
方法应该返回一个视图
,在您的情况下,它不会返回该视图。您正在将视图膨胀到view
变量中,但从未返回该值
将代码更改为:
@Override
public View onCreateView(
LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.content_main, container, false);
login = (LoginButton) view.findViewById(R.id.login_button);
login.setReadPermissions("user_friends");
// Callback registration
login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException exception) {
// App code
}
});
return view; // <<< THIS IS IT
}
@覆盖
公共视图onCreateView(
充气机,
视图组容器,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.content\u main,container,false);
login=(LoginButton)view.findviewbyd(R.id.login_按钮);
login.setReadPermissions(“用户朋友”);
//回调注册
registerCallback(callbackManager,newfacebookcallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
//应用程序代码
}
@凌驾
公开作废{
//应用程序代码
}
@凌驾
public void onError(facebook异常){
//应用程序代码
}
});
返回视图;//添加返回语句,如下所述:
@Override
public View onCreateView(
LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.content_main, container, false);
login = (LoginButton) view.findViewById(R.id.login_button);
login.setReadPermissions("user_friends");
// Callback registration
login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException exception) {
// App code
}
});
return view;//view must be returned from this method
}
@覆盖
公共视图onCreateView(
充气机,
视图组容器,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.content\u main,container,false);
login=(LoginButton)view.findviewbyd(R.id.login_按钮);
login.setReadPermissions(“用户朋友”);
//回调注册
registerCallback(callbackManager,newfacebookcallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
//应用程序代码
}
@凌驾
公开作废{
//应用程序代码
}
@凌驾
public void onError(facebook异常){
//应用程序代码
}
});
return view;//必须从此方法返回视图
}
首先添加此返回视图;
@Override
public void onError(FacebookException exception) {
// App code
}
});
return view;//Add this
}
设置内容视图在哪里
OncreateView
的返回类型为View
,因此必须返回附加到活动的视图
如果要重写onCreate
方法,则可能不需要重写OnCreateView
方法。在onCreate
方法中,可以使用setContentView(R.layout.content\u main)
@覆盖
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.content\u main,container,false);
login=(LoginButton)view.findviewbyd(R.id.login_按钮);
login.setReadPermissions(“用户朋友”);
//回调注册
registerCallback(callbackManager,newfacebookcallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
//应用程序代码
}
@凌驾
公开作废{
//应用程序代码
}
@凌驾
public void onError(facebook异常){
//应用程序代码
}
});
/**
*返回视图
*/
返回视图;
}
它成功了!只是一个简单的附带问题,上面的@Override onCreateView给了我“方法不会推翻它的超类”的提示错误。我是否可以删除它,或者这会导致该部分代码无法运行?@Stenberg,@Override
注释无效。它用于确保您正在重写超类方法或实现接口方法。如果您定义一个带有Override注释的新方法,您将得到一个编译时错误。它在重写方法时,使用注释可以避免一些错误,但如果需要,可以安全地删除注释。通常,在“重写”不属于超类的方法时,会出现所看到的错误。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_layout);
FacebookSdk.sdkInitialize(getApplicationContext()); //Calls for the facebook feature
}
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.content_main, container, false);
login = (LoginButton) view.findViewById(R.id.login_button);
login.setReadPermissions("user_friends");
// Callback registration
login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException exception) {
// App code
}
});
/**
*return view
*/
return view;
}