i can't include fragment activity. tried use fragmentmanager, no results. me please! want inclide google button signing in parrentactivity class. blankfragment
package com.qoobico.gplus; import android.app.activity; import android.content.context; import android.content.intent; import android.os.bundle; import android.support.annotation.nonnull; import android.support.v4.app.fragment; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.textview; import com.google.android.gms.auth.api.auth; import com.google.android.gms.auth.api.signin.googlesigninaccount; import com.google.android.gms.auth.api.signin.googlesigninoptions; import com.google.android.gms.auth.api.signin.googlesigninresult; import com.google.android.gms.common.connectionresult; import com.google.android.gms.common.signinbutton; import com.google.android.gms.common.api.googleapiclient; import com.google.android.gms.common.api.resultcallback; import com.google.android.gms.common.api.status; /** * simple {@link fragment} subclass. */ public class blankfragment extends fragment implements view.onclicklistener, googleapiclient.onconnectionfailedlistener { textview tv_username; googleapiclient mgoogleapiclient; private static final int rc_sign_in = 9001; private boolean isauthenticated = false; signinbutton sign_in_button; private context mcontext; private activity mactivity; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); mactivity = getactivity(); mcontext = getactivity().getapplicationcontext(); signin(); } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate(r.layout.fragment_blank, container, false); googlesigninoptions gso = new googlesigninoptions.builder(googlesigninoptions.default_sign_in) .requestemail() .build(); mgoogleapiclient = new googleapiclient.builder(getactivity()) .enableautomanage(getactivity() /* fragmentactivity */, /* onconnectionfailedlistener */) .addapi(auth.google_sign_in_api,gso) .build(); setgoogleplusbuttontext(this.sign_in_button, "sign in"); return view; } @override public void onclick(view v) { switch (v.getid()) { case r.id.sign_in_button: if (!isauthenticated) { signin(); //this.sign_in_button.setvisibility(view.invisible); setgoogleplusbuttontext(this.sign_in_button, "sign out"); isauthenticated = true; } else { signout(); setgoogleplusbuttontext(this.sign_in_button, "sign in"); isauthenticated = false; } break; } } @override public void onconnectionfailed(@nonnull connectionresult connectionresult) { } public void signin() { intent signinintent = auth.googlesigninapi.getsigninintent(mgoogleapiclient); startactivityforresult(signinintent, rc_sign_in); } public void signout() { auth.googlesigninapi.signout(mgoogleapiclient).setresultcallback( new resultcallback<status>() { @override public void onresult(status status) { tv_username.settext(""); } }); } @override public void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); // result returned launching intent googlesigninapi.getsigninintent(...); if (requestcode == rc_sign_in) { googlesigninresult result = auth.googlesigninapi.getsigninresultfromintent(data); handlesigninresult(result); } } private void handlesigninresult(googlesigninresult result) { if (result.issuccess()) { // signed in successfully, show authenticated ui. googlesigninaccount acct = result.getsigninaccount(); tv_username.settext(getstring(r.string.signed_in_fmt, acct.getdisplayname())); } else { // signed out, show unauthenticated ui. // updateui(false); } } protected void setgoogleplusbuttontext(signinbutton signinbutton, string buttontext) { // find textview inside of signinbutton , set text (int select message = 0; < signinbutton.getchildcount(); i++) { view v = signinbutton.getchildat(i); if (v instanceof textview) { textview tv = (textview) v; tv.settext(buttontext); return; } } } }
parrentactivity
package com.qoobico.gplus; import android.os.bundle; import android.support.v7.app.appcompatactivity; import android.view.view; public class parrentactivity extends appcompatactivity implements view.onclicklistener { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_parrent); } @override public void onclick(view view) { switch (view.getid()){ } } }
blankfragment.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="com.qoobico.gplus.blankfragment"> <textview android:id="@+id/tv_username" android:layout_margintop="50dp" android:textcolor="#ffffff" android:layout_centerhorizontal="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <com.google.android.gms.common.signinbutton android:id="@+id/btnsignin" android:layout_width="120dp" android:layout_height="wrap_content" android:layout_marginbottom="190dp" android:layout_alignparentbottom="true" android:layout_centerhorizontal="true" /> <button android:id="@+id/btnsignout" android:layout_centerhorizontal="true" android:layout_alignparentbottom="true" android:text="sign out" android:layout_marginbottom="50dp" android:layout_width="120dp" android:layout_height="50dp" /> </relativelayout>
parrentactivity.xml
<?xml version="1.0" encoding="utf-8"?> <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:orientation="horizontal" tools:context="com.qoobico.gplus.parrentactivity" android:weightsum="1"> <edittext android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputtype="textpassword" android:ems="10" android:id="@+id/edittext2" android:layout_weight="1" android:layout_below="@+id/edittext" android:layout_alignleft="@+id/edittext" android:layout_alignstart="@+id/edittext" /> <edittext android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputtype="textpersonname" android:text="name" android:ems="10" android:id="@+id/edittext" android:layout_weight="1" android:layout_alignparenttop="true" android:layout_centerhorizontal="true" /> <edittext android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputtype="textemailaddress" android:ems="10" android:id="@+id/edittext3" android:layout_below="@+id/edittext2" android:layout_alignleft="@+id/edittext2" android:layout_alignstart="@+id/edittext2" /> <button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="new button" android:id="@+id/button" android:layout_below="@+id/edittext3" android:layout_centerhorizontal="true" /> <fragment android:layout_width="wrap_content" android:layout_height="wrap_content" android:name="com.qoobico.gplus.blankfragment" android:id="@+id/fragmentb" android:layout_alignparentbottom="true" android:layout_centerhorizontal="true" android:layout_marginbottom="67dp" /> </relativelayout>
generally use supportfragmentmanager can this.
fragmenttransaction ft = this.getsupportfragmentmanager().begintransaction(); fragment fragment = fragment.instantiate(this, class, bundle); ft.add(viewidholder, fragment, tag); ft.commit();
Comments
Post a Comment