/ABSherlock-Fragments/src/com/actionbarsherlock/sample/fragments/FragmentArgumentsSupport.java
https://bitbucket.org/ayastrebov/android-actionbarsherlock · Java · 112 lines · 62 code · 15 blank · 35 comment · 7 complexity · 4df2ca5fc945ee7797b2d4e0eb381089 MD5 · raw file
- /*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package com.actionbarsherlock.sample.fragments;
- import android.app.Activity;
- import android.content.res.TypedArray;
- import android.os.Bundle;
- import android.support.v4.app.Fragment;
- import android.support.v4.app.FragmentTransaction;
- import android.util.AttributeSet;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.TextView;
- import com.actionbarsherlock.app.SherlockFragment;
- import com.actionbarsherlock.app.SherlockFragmentActivity;
- /**
- * Demonstrates a fragment that can be configured through both Bundle arguments
- * and layout attributes.
- */
- public class FragmentArgumentsSupport extends SherlockFragmentActivity {
- @Override protected void onCreate(Bundle savedInstanceState) {
- setTheme(SampleList.THEME); //Used for theme switching in samples
- super.onCreate(savedInstanceState);
- setContentView(R.layout.fragment_arguments_support);
- if (savedInstanceState == null) {
- // First-time init; create fragment to embed in activity.
- FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
- Fragment newFragment = MyFragment.newInstance("From Arguments");
- ft.add(R.id.created, newFragment);
- ft.commit();
- }
- }
- public static class MyFragment extends SherlockFragment {
- CharSequence mLabel;
- /**
- * Create a new instance of MyFragment that will be initialized
- * with the given arguments.
- */
- static MyFragment newInstance(CharSequence label) {
- MyFragment f = new MyFragment();
- Bundle b = new Bundle();
- b.putCharSequence("label", label);
- f.setArguments(b);
- return f;
- }
- /**
- * Parse attributes during inflation from a view hierarchy into the
- * arguments we handle.
- */
- @Override public void onInflate(Activity activity, AttributeSet attrs,
- Bundle savedInstanceState) {
- super.onInflate(activity, attrs, savedInstanceState);
- TypedArray a = activity.obtainStyledAttributes(attrs,
- R.styleable.FragmentArguments);
- mLabel = a.getText(R.styleable.FragmentArguments_android_label);
- a.recycle();
- }
- /**
- * During creation, if arguments have been supplied to the fragment
- * then parse those out.
- */
- @Override public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Bundle args = getArguments();
- if (args != null) {
- CharSequence label = args.getCharSequence("label");
- if (label != null) {
- mLabel = label;
- }
- }
- }
- /**
- * Create the view for this fragment, using the arguments given to it.
- */
- @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View v = inflater.inflate(R.layout.hello_world, container, false);
- View tv = v.findViewById(R.id.text);
- ((TextView)tv).setText(mLabel != null ? mLabel : "(no label)");
- tv.setBackgroundDrawable(getResources().getDrawable(android.R.drawable.gallery_thumb));
- return v;
- }
- }
- }