我正在构建一个android应用程序,它需要碎片事务。为了让这些代码在运行时运行(替换、删除和添加片段),我被告知您需要动态地将原始片段添加到活动中,以便以后对它们进行操作。这看起来并不困难,但我遇到了一个混淆的错误:
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:
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重新源文件:
<?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重新源文件:
<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>这是怎么回事?
谢谢。
发布于 2016-04-18 18:42:49
替换
<?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" />
使用
<?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>发布于 2016-04-18 18:45:23
您的AuthActivity应该有一个片段容器(通常是一个FrameLayout),您可以在其中定义容器id。在碎片事务中使用的id。
https://stackoverflow.com/questions/36701571
复制相似问题