2012-07-08 3 views
0

Fragments를 사용하기 위해 몇 가지 Android 앱을 업그레이드하고 싶습니다. 여기에 기본적인 상황이 있습니다 :오래된 Android 앱에 조각 추가하기

나는 Activity와 ListActivity를 가지고있다. 호환성 패키징을 사용하여 조각을 사용하여 변환하고 싶습니다. 아래는 Activity의 onCreate 메소드에있는 것입니다. (ListActivity에는 비슷한 항목이 있으므로 전환시 예제를 활동으로 만 사용하고 있습니다.)

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    this.getWindow().setSoftInputMode(
      WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
    setContentView(R.layout.rate); 

    Item = getIntent().getExtras().getString("name"); 
    Category = getIntent().getExtras().getString("category"); 

    title = (TextView) findViewById(R.id.tvRateItem); 
    ratingsBar = (RatingBar) findViewById(R.id.theRatingBar); 

    title.setText(Item); 

    // Display list of reviews 

    new starTotalTask().execute(); 
    new starRatingTask().execute(); 

    final EditText etTweetReview = (EditText) findViewById(R.id.etTweetReview); 
    Button button = (Button) findViewById(R.id.theRatingBarButton); 
    button.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 

      // do stuff 

      } 
     } 
    }); 

    Button BReviews = (Button) findViewById(R.id.bReviews); 
    BReviews.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 

     // do stuff 

     } 
    }); 

} 

그래서 당신은 내가 버튼의 부부, AsyncTasks의 몇 가지있다, 참조, 다른 활동에서 데이터를 잡는 일부 getIntents, 일부 "위젯"선언은 XML에 참조.

기본 프레임 워크에는 이미 가리키는 조각이있는 FragmentActivity (호환성 v4 패키지)가 설치되어 있습니다. 사실 ViewPager가 있고 탭이 설정되어 있습니다. 올바른 레이아웃은 새 조각보기와 동일하게 이미 설정되어 있습니다. 위의 데이터 이동 방법을 모르겠습니다. 또한 onCreateView는 레이아웃을 설정하는 곳이라는 것을 이해합니다. 그 밖의 모든 것은 어디로 가고 있습니까? 코드 예제를 방향으로 찾는 것이 아닙니다. 가능한 경우 가능합니다.

편집 : http://thepseudocoder.wordpress.com/2011/10/13/android-tabs-viewpager-swipe-able-tabs-ftw/

특히 관심에서 : 내 레이아웃이 기반으로 - 어디 RatingsBar 및 텍스트 뷰 (및 다른 XML 참조) 가야합니까? - AsyncTask는 어떤가요? - 인 텐트의 데이터 전달을 어떻게 처리합니까?

답변

0

거의 모든 것이 동일합니다. 주요 차이점은 다음과 같습니다

  1. 당신은 Activity 대신에 FragmentActivity을 확장 할 필요가있다.

  2. getFragmentManager() 대신 getSupportFragmentManager()으로 전화해야합니다.

  3. getLoaderManager() 대신 getSupportLoaderManager()으로 전화해야합니다.

  4. 호환 라이브러리는 ListFragmentActivity (또는 무엇이든)을 지원하지 않습니다. 대신 FragmentActivity을 사용하고 코드에 ListView을 설정해야합니다.

+0

응답 해 주셔서 감사합니다. 특정 질문에 답변했는지 확신 할 수 없습니까? "모든 것이 동일 할 것입니다."- 그래서 그 코드 블록을 내 Activity에서 Fragment로 옮깁니다. (작동하지 않거나 시도 했음), 또는 활동을 단편 활동에? (내 레이아웃에 대한 링크도 포함되어 있습니다.) – KickingLettuce

+0

공용 SDK가있는'ViewPager' +'Fragment'를 이미 사용하고 있다면, 지원 라이브러리로 전환하는 것은 단지 코드를 변경하는 것입니다 내 대답에 제안했다. 'Activity' 코드를'Fragment' 코드로 옮겨야한다고 말한 적은 없습니다 ...'Activity' 대신'FragmentActivity'를 사용해야한다고했습니다. 코드는 이전과 같은 구조를 따라야합니다. 위의 네 가지를 변경해야합니다. 올바른 'support.v4' 라이브러리도 가져와야합니다. –

+0

물론, 코드의 구조는'ListActivity' 코드를 변경하여'FragmentActivity'를 확장합니다. 이것은 처음에'ListActivity' 대신에'Activity' 클래스를 확장했다면 작성한 코드와 거의 동일 해 보입니다. 여기에 어떤 의미가 있습니다. –