我的应用程序的 Java 构造函数

标签 java android android-fragments

我是 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/

相关文章:

java - 如何让 fragment 被正确查看

android - 为什么谷歌地图相机不在我的位置?

java - JBoss AS 4.2.2 中不计算 EL 表达式

java - 在 java 中添加 Float 值的问题

java - java程序如何访问操作系统函数?

android - 三星galaxy手机邮箱样式查询

java - fragment 管理器事务参数类型错误

Java8减少流

android - 如何使用 gradle 为 3rd 方部门管理不同的支持库版本?

android - 适用于 Android 的免费专辑封面 API?