关键词:
【中文标题】Android:向活动添加片段【英文标题】:Android: Adding a fragment to an activity 【发布时间】:2012-05-12 07:00:20 【问题描述】:我对 Android 还很陌生,所以这可能有一个明显的答案,但我似乎找不到。
我正在编写一个计算器应用程序版本。我想这样做,以便当用户单击其中一个按钮时,这会启动一个片段(上面有更多按钮,然后他们可以用于更多输入)。
片段代码如下:
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class VariableMenu extends Fragment
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
public void onActivityCreated(Bundle savedInstanceState)
super.onActivityCreated(savedInstanceState);
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
return inflater.inflate(R.layout.fragment, container, false);
XML 布局如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical" >
<Button
android:id="@+id/Bx"
android:layout_
android:layout_
android:text="X"
android:onClick="onButtonClicked"/>
<Button
android:id="@+id/By"
android:layout_
android:layout_
android:layout_toRightOf="@id/Bx"
android:layout_alignTop="@id/Bx"
android:text="Y"
android:onClick="onButtonClicked"/>
<Button
android:id="@+id/Bz"
android:layout_
android:layout_
android:layout_toRightOf="@id/By"
android:layout_alignTop="@id/By"
android:text="Z"
android:onClick="onButtonClicked"/>
</RelativeLayout>
(我知道我不应该使用硬编码的字符串,但是一旦我运行它就会解决这个问题)
我尝试使用带有激活按钮的 onTouch 方法的片段事务添加它,如下所示:
public void onFragmentActivated(View v)
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
VariableMenu fragment = new VariableMenu();
fragmentTransaction.add(R.layout.main, fragment);
fragmentTransaction.commit();
但这给出了一个错误,提示“没有为片段变量菜单找到 id:...(main) 的视图。”
然后我在主 XML 文件中为它创建了一个视图:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_>
(Irrelevant things)
<fragment
android:id="@+id/Fragment"
android:name="calculator.app.VariableMenu"
android:layout_
android:layout_
android:layout_below="@id/B1"/>
(Irrelevant things)
</RelativeLayout>
但这导致片段在活动创建后立即存在(并且 setContentView(R.layout.main); 运行)。
是否有一种简单的方法可以以编程方式向 Activity 添加和删除带有 UI 的片段?
【问题讨论】:
【参考方案1】:这里的问题是片段需要一个带有视图 id 的容器来驻留。给它一个布局 id 会导致你看到的错误。
您可以将片段添加到您的相对布局中,但要正确执行此操作,您需要为其分配适当的布局参数以便可以放置它。在包含其内容的相对布局中创建一个 FrameLayout 会更容易,然后在其中添加片段。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_>
<FrameLayout
android:id="@+id/FragmentContainer"
android:layout_
android:layout_
android:layout_below="@id/B1"/>
</RelativeLayout>
然后
fragmentTransaction.add(R.id.FragmentContainer, fragment);
【讨论】:
+1 。 @Spencer 同样,如果您的片段可以充当单独的活动,您可以将其更改为扩展 FragmentActivity 并将其视为常规活动 非常感谢,效果很好。我不认为 FragmentActivity 在这种情况下会起作用,但我会在未来记住这个选项。【参考方案2】:在您的活动中使用简单的代码
getSupportFragmentManager().beginTransaction().add(R.id.yourcontainer,new yourfragment).commit();
【讨论】:
如何向整个活动添加滚动视图?(代码片段)
我尝试在活动布局上的所有内容周围添加滚动视图,但它给了我一个错误,说它只能放在一件事上。我的活动,有一个标题textview然后是一个图像,然后是一个描述文本视图,你无法阅读整个描述,因为它很长并且低于我的屏幕... 查看详情
向 AndroidManifest 添加新活动?
】向AndroidManifest添加新活动?【英文标题】:AddanewactivitytotheAndroidManifest?【发布时间】:2011-04-1910:59:25【问题描述】:我正在进行一个新的android项目-只是一个简单的项目。我有三个具有不同任务的“选项卡”(活动1、2、3)。... 查看详情
如何将 Android 片段添加到活动?
】如何将Android片段添加到活动?【英文标题】:HowtoaddanAndroidfragmenttoanactivity?【发布时间】:2013-02-0316:11:08【问题描述】:我想在我的主要活动中添加一个片段,所以我有这个片段类(TitleFragment.java):packagecom.myapp.app1;importandro... 查看详情
向多个活动添加相同的上下文菜单
...一点,但只是不明白如何扩展到多个活动。http://developer.android.com/guide/topics/ui/m 查看详情
Android在活动视图中附加片段获取片段已添加错误
】Android在活动视图中附加片段获取片段已添加错误【英文标题】:AndroidattchingfragmentinsideactivityviewgetFragmentalreadyaddedError【发布时间】:2017-04-0910:36:07【问题描述】:在我的活动中,我有简单的FrameLayout小部件,我试图通过replace... 查看详情
Android 选项卡式活动通过 volley 添加新片段
】Android选项卡式活动通过volley添加新片段【英文标题】:AndroidTabbedActivityAddNewFragmentbyvolley【发布时间】:2016-08-0922:49:24【问题描述】:最初我的想法是使用选项卡式活动创建一个儿童列表。1-父母有一个或多个孩子。2-使用volley... 查看详情
如何向 ClusterItem 添加标题、片段和图标?
...em?【发布时间】:2015-02-2823:17:13【问题描述】:我有这个活动:publicclassMapViewerextendsActivityprivateGoogleMapmap;privateDatabasedb=newDatabase(this);protectedvoidon 查看详情
android - 您是不是必须向清单中添加片段
】android-您是不是必须向清单中添加片段【英文标题】:android-doyoueverhavetoaddfragmentstothemanifestandroid-您是否必须向清单中添加片段【发布时间】:2012-03-1213:00:43【问题描述】:我正在使用应该显示web视图的片段。当我尝试从使用... 查看详情
如何向 SFSafariViewController 添加自定义活动?
】如何向SFSafariViewController添加自定义活动?【英文标题】:HowtoaddacustomactivitytoSFSafariViewController?【发布时间】:2016-07-3023:33:12【问题描述】:我想将自定义活动(UIActivity)添加到我在我的应用程序中呈现的SFSafariViewController。我该... 查看详情
Microsoft Teams:如何向活动源添加通知?
】MicrosoftTeams:如何向活动源添加通知?【英文标题】:MicrosoftTeams:Howtoaddnotificationstotheactivityfeed?【发布时间】:2017-10-2320:41:30【问题描述】:如何将通知推送到Teams中的用户活动源?Thisdocumentation建议通过设置channelData属性来实... 查看详情
android意图片段到活动有错误
】android意图片段到活动有错误【英文标题】:Haveerrorwithandroidintentfragmenttoactivity【发布时间】:2021-02-0503:20:16【问题描述】:*帮助我找出错误的原因。我做了onClickmButtonDate我的清单中有问题。我需要向您展示哪些文件以便您了... 查看详情
向导航栏添加活动指示器
】向导航栏添加活动指示器【英文标题】:Addinganactivityindicatortothenavbar【发布时间】:2014-02-1721:22:03【问题描述】:我有一个视图控制器,它在用户点击按钮时启动异步网络请求,然后在请求完成后推送另一个控制器。在此期间... 查看详情
在 Android Studio 中向列表视图添加自定义行
】在AndroidStudio中向列表视图添加自定义行【英文标题】:AddingcustomrowstolistviewinAndroidStudio【发布时间】:2021-08-2717:37:35【问题描述】:在我的CT_Locations活动中,我想在单击“添加断点”按钮时将自定义XML行(row_location.xml)添加到列... 查看详情
使用 JQuery 向每个 li 添加“活动”类
】使用JQuery向每个li添加“活动”类【英文标题】:Adding"active"classtoeachliusingJQuery【发布时间】:2021-12-1405:34:59【问题描述】:我正在尝试为我网站中的每个li标签添加活动类,但我认为我的代码有问题,我不知道它是什... 查看详情
Android Studio:无法向项目添加新类或任何文件
】AndroidStudio:无法向项目添加新类或任何文件【英文标题】:AndroidStudio:Unabletoaddanewclassoranyfiletoaproject【发布时间】:2015-10-0104:48:13【问题描述】:我的Android运行良好,能够向我的项目添加新的xml、活动或任何新文件。直到最... 查看详情
Android:在视图/活动/片段之间滑动切换
】Android:在视图/活动/片段之间滑动切换【英文标题】:Android:onswipeswitchbetweenViews/Activities/Fragments【发布时间】:2011-11-0711:41:36【问题描述】:我正在实现一个聊天应用程序。用户可以同时打开多个聊天,我想让他通过向左或向... 查看详情
Kotlin Android - 当主活动添加项目时,从 Fragment 刷新 ListView
】KotlinAndroid-当主活动添加项目时,从Fragment刷新ListView【英文标题】:KotlinAndroid-RefreshListViewfromFragmentwhenanitemisaddedbyMainActivity【发布时间】:2019-12-1321:54:07【问题描述】:我有一个BottomNavigationView,有2个子菜单,主页和电子邮件... 查看详情
在没有任何布局的情况下向活动添加按钮
】在没有任何布局的情况下向活动添加按钮【英文标题】:addingabuttontoactivityWITHOUTanylayout【发布时间】:2012-07-0906:52:20【问题描述】:问题是我在我的活动中使用了一种SurfaceView,我想在其中添加按钮。我的问题是:1)如何在不... 查看详情