相关疑难解决方法(0)

Android兼容包不包含Activity.getFragmentManager()

我开始尝试使用刚刚于3月3日发布的Android兼容性软件包向基于2.1的Android应用添加片段.我将库包含到我的项目中,并开始将代码从基于Activity的类移动到基于Fragment的类,但我注意到Google的Fragment示例似乎依赖于3.0中的Activity类(Honeycomb)有新方法getFragmentManager().它似乎是Fragment系统的一个完整的钩子.

我试图在兼容包库中查看一些包含getFragmentManager()的Activity实现,但我找不到它.有谁知道我在哪里可以找到getFragmentManager()所以我可以包含Fragments for Honeycomb兼容性,或者如果不是,你知道如何在不使用FragmentManager的情况下包含片段吗?

android android-fragments android-activity

80
推荐指数
1
解决办法
2万
查看次数

Android:无法将一个片段替换为另一个片段

我需要替换Fragment一个Activity与另一个Fragment,下面是层文件Activity:

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:id="@+id/home_layout_container">

    <fragment android:name="com.foo.FragA"
        android:id="@+id/home_list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

    </FrameLayout>
Run Code Online (Sandbox Code Playgroud)

所以默认情况下有FragA,现在我想在活动中用FragB替换它,我做了:

public void onRegionClicked(Region region) {
    RegionInfoFragment rif = RegionInfoFragment.newInstance(region);
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.replace(R.id.home_list, rif);
}
Run Code Online (Sandbox Code Playgroud)

但我得到了例外:

>6:24:40.685: ERROR/AndroidRuntime(9194): Uncaught handler: thread main exiting due to uncaught exception
05-06 16:24:40.692: ERROR/AndroidRuntime(9194): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
05-06 16:24:40.692: ERROR/AndroidRuntime(9194): …
Run Code Online (Sandbox Code Playgroud)

android replace android-fragments

45
推荐指数
2
解决办法
5万
查看次数

替换碎片不起作用/我是否以正确的方式执行此操作?

我花了一些时间把头包裹在碎片上,但这应该是我关于碎片的最后一个问题,因为我认为我只是让它们失效了.我知道这是一堆乱七八糟的代码.但我很感激帮助,以确保我没有破坏任何碎片的基本规则.

我将发布我的所有代码,看看是否有人可以"查看它",看看我是否犯了重大错误,或者我是否应该采用更简单的方法.最后,正如标题中所述,我的片段没有被替换......它被添加到顶部.

文件树:

在此输入图像描述

MainActivity.java:

package com.example.learn.fragments;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;

public class MainActivity extends FragmentActivity{

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    /* Add a class to handle fragment */
    public static class SSFFragment extends Fragment {
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            // Inflate the layout …
Run Code Online (Sandbox Code Playgroud)

java android android-fragments

19
推荐指数
1
解决办法
1万
查看次数

片段未使用Android 5.0工具栏小部件显示在ActionBarActivity中

当我运行我的应用程序时,MainFragment根本没有显示在扩展ActionBarActivity的活动中.我确实查过这篇文章,但它没有帮我解决我的问题.这是我的活动和片段:

activity_main.xml中:

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (savedInstanceState == null) {
        getFragmentManager().beginTransaction()
                .add(R.id.container, new MainFragment())
                .commit();
    }

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-5.0-lollipop

2
推荐指数
1
解决办法
7729
查看次数

片段添加不起作用

这是我的主要内容:

package com.example.frags;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;


public class NewMessage extends FragmentActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.new_message);

        //Set new fragment
        FragA fragA = new FragA();
        FragmentTransaction transaction = getSupportFragmentManager()
                .beginTransaction();
        transaction.add(R.id.container_id, fragA);
        transaction.commit();

    }


}
Run Code Online (Sandbox Code Playgroud)

我的FragA课程:

package com.example.frags;


import android.os.Bundle;
import android.text.style.SuperscriptSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class FragA extends android.support.v4.app.Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) { …
Run Code Online (Sandbox Code Playgroud)

java android android-fragments

0
推荐指数
1
解决办法
2807
查看次数