我是 Android 开发新手。
为了创建一个选项卡式 Activity ,我创建了三个 Java 类:1) 关于; 2) 搜索; 3) list ;
在我的搜索布局中,我想要一个搜索栏,所以我创建了一个 EditText(通过拖放)和一个按钮(通过拖放)。
为了使我的选项卡工作,在我的 Search.java 中我有以下代码:
public class Search extends Fragment{
//@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.search, container, false);
return rootView;
}
}
现在在我的 Search.java 类中,我也想开始为我的搜索栏编写代码,但为了做到这一点,我认为我需要一个像在主 Activity 中这样启动的构造函数:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
但是当我为它写代码时,它给了我这些错误:
1) 在 protected
上:“com.example.alex.project.Search”中的“onCreate(Bundle)”与“android.support.v4.app”中的“onCreate(Bundle)”崩溃。分段;试图分配较弱的访问权限(“ protected ”);是“公开的”
2) 在 setContentView
上:无法解析方法“setContentView(int)”
我可以做什么或需要更改什么才能开始为“onCreate(Bundle)”方法中的搜索栏编写 Java 代码?
或者我需要在其他地方做吗?
如果有任何帮助,我将不胜感激。
最佳答案
您的方法签名有误。 You can't weaken the access privilege of an overridden method.使用
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
您可以在 OnViewCreated
中访问您的 EditText
:
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
// Parameter view is the inflated view you passed in onCreateView
// Replace with your id
EditText myEditText = (EditText) view.findViewById(R.id.edit1);
}
关于我的应用程序的 Java 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43299541/