2013-01-05 2 views
0

난 다음 레이아웃 조각 가지고 my_fragment.xmlFragmentActivity를 확장하는 호스트 클래스 내에서만 작동하는 이유는 무엇입니까?

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 

<TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/appName" 
     android:id="@+id/textView" android:layout_gravity="center" 
     android:layout_margin="5dp"/> 

<Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/button1" 
     android:id="@+id/button1" 
     android:layout_gravity="center"/> 

대응 MyFragment.java

package com.example.appdemo; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.Toast; 

public class MyFragment extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.top_bar, container, false); 

    Button button1 = (Button)view.findViewById(R.id.button1); 
    button1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Toast.makeText(getActivity(), "Button Pressed", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

    return view; 
    } 
} 

을 이것은

package com.example.appdemo; 

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

public class MainActivity extends FragmentActivity { 

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

내부 호스팅

다음 레이아웃 사용 activity_main.xml

<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" 
tools:context=".MainActivity" > 

<fragment 
    android:id="@+id/fragment" 
    android:name="com.example.appdemo.MyFragment" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

</RelativeLayout> 

이제 제 질문은 왜 FragmentActivity를 확장 할 때만 작동합니까? 나는 활동을 확장하고 싶다. 어떻게해야합니까?

답변

3

왜 FragmentActivity를 확장하는 호스트 클래스에서만 작동합니까?

당신은 android.support.v4.app.Fragment 대신 android.app.Fragment에서 상속되기 때문에.

+0

짧고 달콤한 것으로 유지 :) –

+0

오, 그랬습니다. 그게 내가 수입품을 확인하지 않은 것에 대한 것입니다. 고마워. 좋은 하루 되세요. – user1923613

관련 문제