方法不会覆盖其超类中的方法
Method does not override method from its superclass
谁能告诉我,为什么会显示这个错误(或者有更好的解决办法)?
我是 Java(和 Android)开发的新手,所以我真的不知道我的错
我的代码:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
public class select_type extends Fragment {
public select_type() {
// Required empty public constructor
}
@Override //<--- Cause the ERROR
public View onCreateView(View view, LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
return inflater.inflate(R.layout.fragment_select_type, container, false);
Button btn = (Button) view.findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
noVIP TextFragment = new noVIP();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, TextFragment);
transaction.addToBackStack(null);
transaction.commit();
}
});
return view;
}
}
替换:
public View onCreateView(View view, LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
与:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
作为onCreateView()
is not passed a View
parameter.
另外,去掉super.onViewCreated(view, savedInstanceState);
。在你所在的地方称呼它既没有必要也不合适。
请注意,该方法中 return
语句之后的所有内容都不会执行,因为您是第一个 returning。将 inflater.inflate(...)
结果分配给一个局部变量,使用它,然后 return 在你的方法结束时那个变量。
您还可以覆盖两种方法:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_select_type, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Button btn = (Button) view.findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
noVIP TextFragment = new noVIP();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, TextFragment);
transaction.addToBackStack(null);
transaction.commit();
}
});
}
谁能告诉我,为什么会显示这个错误(或者有更好的解决办法)?
我是 Java(和 Android)开发的新手,所以我真的不知道我的错
我的代码:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
public class select_type extends Fragment {
public select_type() {
// Required empty public constructor
}
@Override //<--- Cause the ERROR
public View onCreateView(View view, LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
return inflater.inflate(R.layout.fragment_select_type, container, false);
Button btn = (Button) view.findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
noVIP TextFragment = new noVIP();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, TextFragment);
transaction.addToBackStack(null);
transaction.commit();
}
});
return view;
}
}
替换:
public View onCreateView(View view, LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
与:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
作为onCreateView()
is not passed a View
parameter.
另外,去掉super.onViewCreated(view, savedInstanceState);
。在你所在的地方称呼它既没有必要也不合适。
请注意,该方法中 return
语句之后的所有内容都不会执行,因为您是第一个 returning。将 inflater.inflate(...)
结果分配给一个局部变量,使用它,然后 return 在你的方法结束时那个变量。
您还可以覆盖两种方法:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_select_type, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Button btn = (Button) view.findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
noVIP TextFragment = new noVIP();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, TextFragment);
transaction.addToBackStack(null);
transaction.commit();
}
});
}