2013-07-19 1 views
2
나는 내 코드를 단편화로 변환 할 때 내 응용 프로그램이 여전히 활동

의 Google+ API 활동은 단편

package com.ronnielp.loginsample2; 

import com.google.android.gms.common.ConnectionResult; 
import com.google.android.gms.common.Scopes; 
import com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks; 
import com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener; 
import com.google.android.gms.plus.PlusClient; 
import com.google.android.gms.plus.model.people.Person; 

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.content.IntentSender.SendIntentException; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.TextView; 

public class SignIn extends Activity implements OnClickListener, 
    ConnectionCallbacks, OnConnectionFailedListener{ 


    private static final int REQUEST_CODE_RESOLVE_ERR = 40; 
    private PlusClient mPlusClient; 
    private ConnectionResult mConnectionResult; 
    private TextView txtUser; 

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

     mPlusClient =new PlusClient.Builder(this, this, this) 
     .setScopes(Scopes.PLUS_LOGIN) 
     .setVisibleActivities("http://schemas.google.com/AddActivity") 
     .build(); 

     findViewById(R.id.sign_in_button).setOnClickListener(this); 
     txtUser = (TextView) findViewById(R.id.txtUser); 

    } 

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



    @Override 
    protected void onStart() { 
     // TODO Auto-generated method stub 
     super.onStart(); 
     mPlusClient.connect(); 
    } 

    @Override 
    protected void onStop() { 
     // TODO Auto-generated method stub 
     super.onStop(); 
     mPlusClient.disconnect(); 
    } 

    @Override 
    public void onConnectionFailed(ConnectionResult result) { 
     // TODO Auto-generated method stub 
     mConnectionResult = result; 
    } 

    @Override 
    public void onConnected(Bundle connectionHint) { 
     // TODO Auto-generated method stub 
     Person user = mPlusClient.getCurrentPerson(); 
     String acc = mPlusClient.getAccountName(); 
     txtUser.setText(acc); 
    } 

    @Override 
    public void onDisconnected() { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onClick(View view) { 
     // TODO Auto-generated method stub 
     if (view.getId() == R.id.sign_in_button && !mPlusClient.isConnected() && mConnectionResult !=null){ 
      try{ 
       mConnectionResult.startResolutionForResult(this, REQUEST_CODE_RESOLVE_ERR); 
      } catch (SendIntentException e){ 
       mConnectionResult = null; 
       mPlusClient.connect(); 
      } 
     } 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // TODO Auto-generated method stub 
     if (requestCode == REQUEST_CODE_RESOLVE_ERR && resultCode == RESULT_OK){ 
      mConnectionResult = null; 
      mPlusClient.connect(); 
     } 
    } 


} 

하고 때 내 코드입니다

을 조각화 내 코드 변환에 문제가있어

더 이상 작동하지 않습니다 안드로이드 프로그래밍에서 아직 초보자입니다.

+0

당신이 FragmentActivity 당신에게 활동을 확장해야합니다,이 수입 SupportFragment 추가해야합니다 (\ 를 추가 \ 안드로이드 \ supporty \ V4 ...) <- 내가 폴더에 대한 확실하지 않다 : S –

+0

조각의 코드를 게시하십시오 .. –

+0

정적 또는 동적 조각을 사용하고 있습니까? 코드가 없으면 우리가 할 수있는 것은 문제의 가능한 원인을 추측하는 것입니다. – IanB

답변

3

몇 건 잘못되었을 수도 있습니다. 하나의 문제는 childFragmentManager에 액세스하는 것입니다. 관리자는 결과를 조각으로 전달하지 않으므로 기본 클래스에서 수동으로 수행해야합니다.

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
     super.onActivityResult(requestCode, resultCode, intent); 
     Fragment fragment = (Fragment) getChildFragmentManager().findFragmentByTag(childTag); 
     if(fragment != null){ 
      fragment.onActivityResult(requestCode, resultCode, intent); 
     } 
}