2013-12-15 4 views
0

조각을 동적으로 설정하려고합니다. FragmentActivity에서해야합니다. 여기 내가 시도한 것이있다.조각을 동적으로 설정하는 중 오류가 발생했습니다.

MainActivity.java

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

public class MainActivity extends FragmentActivity { 

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

     Fragment frag = new InputFragment(); 

     FragmentTransaction ft = getFragmentManager().beginTransaction(); 
     ft.replace(R.id.fragment_container, frag); 
     ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
     ft.addToBackStack(null); 
     ft.commit(); 
    } 

    @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; 
    } 

}

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" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <FrameLayout 
     android:id="@+id/fragment_container" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 



    </FrameLayout> 



</RelativeLayout> 

InputFragment.java

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

public class InputFragment extends Fragment { 

    private Button submit; 

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

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


     submit = (Button)view.findViewById(R.id.input_submit_button); 
     submit.setOnClickListener(new SubmitButtonAction()); 


     return view; 

    } 

    private class SubmitButtonAction implements OnClickListener 
    { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Fragment frag = new OutputFragment(); 

      FragmentTransaction ft = getFragmentManager().beginTransaction(); 
      ft.replace(R.id.fragment_container, frag); 
      ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
      ft.addToBackStack(null); 
      ft.commit(); 
     } 

    } 

} 

컴파일 오류가 있습니다. 여기있어.

Type mismatch: cannot convert from android.app.FragmentTransaction to android.support.v4.app.FragmentTransaction 

이 오류는 이클립스에 의해 제안 수정을 시도 MainActivity.java

FragmentTransaction ft = getFragmentManager().beginTransaction();에서 오는, 그러나 그것은 나에게 아무것도주지 않았다. exlipse 제안을 사용하여 오류를 수정하면 다른 오류가 발생합니다. 내가 일식 제안 (클릭하여 일식 제안)을 사용하여 그것을 고칠 때 그것은 이전 오류로 돌아온다.

내가 여기서 뭐하고 있니? 당신이 안드로이드 SDK를 vrsion 3.0 아래 조각을 사용하려면

답변

1

시도가 getSupportFragmentManager() 대신

+1

그래, 쿨 캐치를 사용할 수있는 경우. 감사! –

1

getFragmentManager()의를 사용하여, 다음 지원 4 지원 lib 디렉토리에서 사용할 수에서 getSupportFragmentManager() 메서드를 사용합니다. (lib 폴더에 supportv4 lib를 넣고 프로젝트 빌드 경로를 추가하십시오.)

1

지원 라이브러리로 전환을 사용할 수 있는지 확실하지 않습니다. 몇 가지 제안 :

  1. 제거이 줄 ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
  2. 아니면 API (14)을 타겟팅 이상 대신 extend ActivitygetFragmentManager()
관련 문제