Android:添加一个简单的片段

2023-11-26

我对 Android 应用程序还很陌生,所以我希望能在这里找到一些帮助。 我已经在这里搜索了我的问题并找到了一些东西,但这不起作用。

我想将 Fragment 添加到 FrameLayout 但它不起作用。我的目标是创建一个始终存在的框架(/框架?),用户可以与它交互,并在这个框架内的特定“窗口”中我想显示页面/片段,总共五个,并且能够切换随时更改页面/片段,因此我有一个始终存在的框架并位于这个动态变化的页面内。 但现在我一开始就被困在向这个框架添加一个简单的片段(顺便说一句,它已经在工作了)。

这是我希望的所有相关代码: 错误发生在 MainActivity.java (getSupportFragmentManager().beginTransaction().add(R.id.mainFrame, homeFragment).commit();) 中,它告诉我:

错误:(25, 55) 错误:找不到合适的方法 添加(int,HomeFragment)方法 FragmentTransaction.add(Fragment,String) 不适用(参数不匹配;int 无法转换为 Fragment) 方法 FragmentTransaction.add(int,Fragment) 不是 适用(参数不匹配;HomeFragment 无法转换为 分段)

我已经尝试将 homeFragment 转换为 Fragment,但这不起作用。

MainActivity.java

import android.app.FragmentTransaction;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;


public class MainActivity extends FragmentActivity
{
    FragmentTransaction fragmentTransaction;
    HomeFragment homeFragment;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        homeFragment = new HomeFragment();
        **getSupportFragmentManager().beginTransaction().add(R.id.mainFrame, homeFragment).commit();**
}

活动主文件

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    tools:ignore="MergeRootFrame" >

    <FrameLayout
        android:id = "@+id/mainFrame"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:layout_marginBottom = "@dimen/bottom_Main_Tabs">
        </FrameLayout>

    [...]

</FrameLayout>

片段_home.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.HomeFragment"> // it is not really com.example...

    <!-- TODO: Update blank fragment layout -->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/hello_blank_fragment" />

</FrameLayout>

HomeFragment.java(一切都是自动生成的,但我已经剪掉了一些东西)

public class HomeFragment extends Fragment
{
    private OnFragmentInteractionListener mListener;


    public static HomeFragment newInstance()
    {
        HomeFragment fragment = new HomeFragment();
        return fragment; // not really neccessary, because it Have shortened it
    }

    public HomeFragment()
    {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState)
    {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_home, container, false);
    }

    // TODO: Rename method, update argument and hook method into UI event
    public void onButtonPressed(Uri uri)
    {
        if (mListener != null)
        {
            mListener.onFragmentInteraction(uri);
        }
    }

    @Override
    public void onAttach(Activity activity)
    {
        super.onAttach(activity);
        try
        {
            mListener = (OnFragmentInteractionListener) activity;
        }
        catch (ClassCastException e)
        {
            throw new ClassCastException(activity.toString()
                    + " must implement OnFragmentInteractionListener");
        }
    }

    @Override
    public void onDetach()
    {
        super.onDetach();
        mListener = null;
    }

    public interface OnFragmentInteractionListener
    {
        // TODO: Update argument type and name
        public void onFragmentInteraction(Uri uri);
    }

}

有人能帮帮我吗?

John


您将支持库中的类与仅适用于较新版本的操作系统的新类混合在一起。

例如,您导入android.app.FragmentTransaction(适用于 API 11+)但调用getSupportFragmentManager().beginTransaction()回报android.support.v4.app.FragmentTransaction ...

你需要导入android.support.v4.app.FragmentTransaction并确保您的HomeFragment延伸android.support.v4.app.Fragment并不是android.app.Fragment.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:添加一个简单的片段 的相关文章

随机推荐

  • 语句关闭后不允许进行任何操作

    我收到带有签名的异常No operations allowed after statement closed 在我的 Java 代码中 我试图将值插入数据库 错误签名表明我的 Statement 对象被关闭 我试图在我的代码中再次使用它 但
  • 当从底部单击页面时,jquery 数据表滚动到顶部

    我正在使用带有底部分页的 jQuery 数据表 当从底部单击页面时 我希望它将其滚动到顶部 这样用户就不必为较长的页面手动执行此操作 我尝试使用 dataTables scrollBody 但它无法正常工作 这是我的代码 oTable tT
  • iOS: dequeueReusableCell(withIdentifier:for:) 和 dequeueReusableCell(withIdentifier:) 之间有什么区别?

    根据官方文档 有两种方法可以从tableView的队列中获取可重用的cell 一是dequeueReusableCell withIdentifier for 另一个是dequeueReusableCell withIdentifier 从
  • 我是否应该经常调用 EntityManager.clear() 以避免内存泄漏?

    我是 JPA OpenJPA 的新手 我注意到如果我不打电话EntityManager clear 在我坚持实体之后 我得到了OutOfMemoryError 我不断在循环中添加新实体 我不确定这是否是预期的行为 或者只是 OpenJPA
  • 属性错误:“字节”对象没有属性“超时”

    import re urllib request textfile open depth 1 txt wt print enter the url you would like to crawl print Usage http phock
  • 如何从堆栈跟踪中提取局部变量?

    假设我有一个引发意外异常的函数 因此我将其包装在 ipdb 中 def boom x y try x y except Exception as e import ipdb ipdb set trace def main x 2 y 0 b
  • 使用 3 个字母单词在 mysql 上进行全文搜索

    我试图在包含 The Zen Circus 的字段中找到 the zen 字符串 我有一个全文索引 select url name MATCH name AGAINST zen IN BOOLEAN MODE as A MATCH name
  • 如何在 R 中找到日期的“起源”

    如果我有一个使用 as Date 函数转换的日期 例如 2015 01 01 我怎样才能知道它使用哪个日期作为其起源的参考 是的 我尝试过 Date 并尝试使用默认原点 但得到的是 1945 年的天数 我想知道一般如何执行此操作 这样我就不
  • 如何将 html.slim 文件转换为 html 或 html.erb?

    我需要将 Ruby on Rails 应用程序中的 html slim 文件转换为 html erb 有什么简单的方法可以做到吗 我尝试了 Stack Overflow 和其他网站中列出的许多选项 但对我来说没有任何作用 我找到了一个转换器
  • Facebook Web 应用程序扩展权限第二步不显示

    Update2这篇文章已经过时了 但仍然相关 下面是我解决这个问题的方法 我标记了其他人的答案 因为我认为它更好地回答了问题 我正在 accountcontroller 中调用类似的方法 我即将重构 该字符串应该是一个列表 我想你明白了
  • 如何在Spring LDAP中添加LDAP缓存?

    我想在本地缓存 LDAP 用户数据以允许更快的查询 Spring LDAP 提供这样的功能吗 我怎样才能做到这一点 我使用 Spring Security 3 1 和 Spring LDAP 1 3 1 进行身份验证和授权 如果存在使用内置
  • 无法在同一文件中使用模块和主程序进行编译

    我正在尝试使用与主程序位于同一文件中的模块 但是 我无法让它工作 Fortran 是否允许模块与主程序包含在同一文件中 还是必须位于单独的文件中 这是我的代码的简单版本 main program use my module call my
  • ggplot2:如何在单个图中组合直方图、地毯图和逻辑回归预测

    我正在尝试绘制逻辑回归的组合图作为函数逻辑直方图但我想用ggplot2 审美原因 问题是只有一个直方图应该具有scale y reverse 有什么方法可以在单个图中指定这一点 请参见下面的代码 或者通过使用可以传递到前一个图的坐标来重叠两
  • 如何使用 Python 在 OpenCV 中裁剪图像

    如何使用 OpenCV 裁剪图像 就像我之前在 PIL 中所做的那样 PIL 上的工作示例 im Image open 0 png convert L im im crop 1 1 98 33 im save 0 png 但是我如何在 Op
  • 获取java类的编译时间戳

    是否可以可靠地确定本地运行的 Java 应用程序以及作为小程序和 或 JNLP Web 应用程序运行的给定类的编译时间戳 根据 Java 虚拟机规范 类文件格式不需要任何类型的时间戳 因此您最好检查包含该类的 Class 或 Jar 文件的
  • 如何修剪前导和尾随空白?

    我在处理 data frame 中的前导和尾随空格时遇到一些问题 例如 我查看一个特定的row in a data frame基于某种条件 gt myDummy myDummy country c Austria c 1 2 3 7 19
  • 使用 xUnit 处理 netstandard1.6

    我希望使用 netstandard1 6 库的测试框架 我尝试关注并编辑xUnit net 入门 NET Core ASP NET Core 没有成功 按照 xUnit 的教程 使用 VS 2015 Update 3 RTM 上的 dotn
  • 使用spel访问spring注释中的静态变量

    我在注释中有一个值 我想为其分配一个静态变量 我尝试过这样的事情 Cacheable value com test App VALUE public List someCachableMethod 尝试此操作后 仍然出现相同的异常 找不到字
  • Android Facebook 意图

    我正在使用此代码在 Facebook 上发布 但它不适用于官方 Facebook 应用程序 因为它尝试作为链接发送 有没有办法解决 Intent s new Intent android content Intent ACTION SEND
  • Android:添加一个简单的片段

    我对 Android 应用程序还很陌生 所以我希望能在这里找到一些帮助 我已经在这里搜索了我的问题并找到了一些东西 但这不起作用 我想将 Fragment 添加到 FrameLayout 但它不起作用 我的目标是创建一个始终存在的框架 框架