首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在android中动态添加片段时找不到ID

在android中动态添加片段时找不到ID
EN

Stack Overflow用户
提问于 2016-04-18 18:23:24
回答 2查看 42关注 0票数 0

我正在构建一个android应用程序,它需要碎片事务。为了让这些代码在运行时运行(替换、删除和添加片段),我被告知您需要动态地将原始片段添加到活动中,以便以后对它们进行操作。这看起来并不困难,但我遇到了一个混淆的错误:

代码语言:javascript
复制
Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f0c008b (com.powerofpixels.magpie:id/auth_fragment_container) for fragment AuthOptionsFragment{fa0ffa7 #0 id=0x7f0c008b}

所以android无法找到动态添加到活动中的片段容器,但是为什么呢?

这里是我的AuthActivity.java:

代码语言:javascript
复制
package com.powerofpixels.magpie.ui.activity;


import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

import com.powerofpixels.magpie.R;
import com.powerofpixels.magpie.ui.fragment.AuthOptionsFragment;


public class AuthActivity extends FragmentActivity {

    private static final String TAG = AuthActivity.class.getSimpleName();

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

        getSupportFragmentManager().beginTransaction()
                .add(R.id.auth_fragment_container, new AuthOptionsFragment()).commit();


    }
}

这里是我的AuthActivity xml重新源文件:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".ui.activity.AuthActivity">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/logo_image_view"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />
</RelativeLayout>

和voici片段xml重新源文件:

代码语言:javascript
复制
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:context="com.powerofpixels.magpie.ui.fragment.AuthOptionsFragment"
    android:id="@+id/auth_fragment_container">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sign Up"
        android:clickable="true"
        android:id="@+id/sign_up_text_view"
        android:textSize="22dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Log in"
        android:clickable="true"
        android:id="@+id/log_in_text_view"
        android:layout_marginTop="40dp"
        android:textSize="22dp"
        android:layout_below="@+id/sign_up_text_view"
        android:layout_alignLeft="@+id/skip_text_view"
        android:layout_alignStart="@+id/skip_text_view" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Skip"
        android:clickable="true"
        android:id="@+id/skip_text_view"
        android:layout_marginTop="40dp"
        android:textSize="22dp"
        android:layout_below="@+id/log_in_text_view"
        android:layout_alignLeft="@+id/sign_up_text_view"
        android:layout_alignStart="@+id/sign_up_text_view" />
</RelativeLayout>

这是怎么回事?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-04-18 18:42:49

替换

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".ui.activity.AuthActivity">

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/logo_image_view"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />

使用

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    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"
 android:paddingBottom="@dimen/activity_vertical_margin"
 android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 tools:context=".ui.activity.AuthActivity">
 <FrameLayout
    android:id="@+id/auth_fragment_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
 />
</RelativeLayout>
票数 0
EN

Stack Overflow用户

发布于 2016-04-18 18:45:23

您的AuthActivity应该有一个片段容器(通常是一个FrameLayout),您可以在其中定义容器id。在碎片事务中使用的id。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36701571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档