Нет выхода из фрагментов в Android. - PullRequest
0 голосов
/ 02 февраля 2012

Использование фрагментов в первый раз.Как фрагмент сам по себе, следуя документации, я думаю, что правильно написал в manifest.xml.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/example_fragment"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <fragment class="com.test.methods.ExampleFragment"
            android:id="@+id/list"
            android:layout_weight="1"
            android:layout_width="0px"
            android:layout_height="match_parent" />

    <FrameLayout android:id="@+id/details" android:layout_weight="1"
            android:layout_width="0px"
            android:layout_height="match_parent" />

</LinearLayout>

Мой фрагмент:

package com.test.methods;

import android.support.v4.app.Fragment;
import android.support.v4.app.ListFragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;

import com.crumbin.main.R;

public class ExampleFragment extends ListFragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        setListAdapter(new ArrayAdapter<String>(getActivity(),
                R.id.list,
                Shakespeare.TITLES));
        return inflater.inflate(R.layout.example_fragment, container, false);
    }
}

Моя активность:

package com.test.methods;

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

public class DemoUserActivity extends FragmentActivity{
    protected void OnCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        if (savedInstanceState == null)
        {
            ExampleFragment details = new ExampleFragment();
            details.setArguments(getIntent().getExtras());
            getSupportFragmentManager().beginTransaction().add(
                    android.R.id.content,details).commit();
        }

    }
}

Мое намерение:

intent = new Intent().setClass(this, DemoUserActivity.class);
spec = tabHost.newTabSpec("list").setIndicator("FragmentTest",
                  res.getDrawable(R.drawable.icon_list_tab))
              .setContent(intent);
tabHost.addTab(spec);

Я не получаю выводэтого.Я попытался отладить, но он даже не достигает файла активности.

1 Ответ

0 голосов
/ 02 февраля 2012

Нет активности - это другое дело, а Fragment отличается, вы можете использовать их для создания модуля модуляции вашего приложения и замены одного другим с минимальными усилиями, но не можете использовать его вместо другого, если вы хотите использовать фрагмент , вам нужно объявить активность, в этой активности вам нужно добавить свой фрагмент, отдельный фрагмент без Activity не может быть использован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...