MainActivity.java
正在接收類。從意圖獲取數據時的空指針錯誤
Signup.java
是Sender類。
從意向接收數據時發生錯誤。
MainActivity.java - 收貨類
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
// Class Variables
private String name;
private String email;
private String img_url ;
// Controls
private TextView Email;
private TextView Name;
private ImageView prof_Pic;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Name = (TextView) findViewById(R.id.profile_Name);
Email = (TextView) findViewById(R.id.profile_Email);
prof_Pic = (ImageView) findViewById(R.id.profile_Picture);
//Bundle extras = new Bundle();
//extras.getExtras()
//getIntent().getExtras();
Intent intent = getIntent();
Bundle extra = intent.getBundleExtra("gProfileRecord");
if (extra != null) {
String email= extra.getString("email");
Email.setText(email); **/* *** ERROR *** */**
String name = extra.getString("firstName");
Name.setText(name);
String img_url = extra.getString("profile_Pic");
Glide.with(this).load(img_url).into(prof_Pic);
}}
SignUp.java - 發件人類
public class Signup extends AppCompatActivity
implements View.OnClickListener, GoogleApiClient.OnConnectionFailedListener
{
// Variables for controls
private LinearLayout prof_layout;
private Button SignOut;
private TextView Name, Email, GivenName, FamilyName, PersonId;
private ImageView prof_pic;
// Some class variables
private String name;
private String email;
private String personGivenName;
private String personFamilyName;
private String personId;
private String img_url ;
// variables for Google SignIN process
private SignInButton SignIn;
private GoogleApiClient mGoogleApiClient;
private static final int REQ_CODE = 9001;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
prof_layout = (LinearLayout) findViewById(R.id.profile_layout);
SignOut = (Button) findViewById(R.id.bn_logout);
SignIn = (SignInButton)findViewById(R.id.sign_in_button);
Name = (TextView) findViewById(R.id.name);
Email = (TextView) findViewById(R.id.email);
GivenName = (TextView) findViewById(R.id.given_Name);
FamilyName = (TextView) findViewById(R.id.family_name);
PersonId = (TextView) findViewById(R.id.person_id);
prof_pic = (ImageView) findViewById(R.id.profile_Pic);
// Event Listener
SignIn.setOnClickListener(this);
SignOut.setOnClickListener(this);
prof_layout.setVisibility(View.GONE);
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.sign_in_button:
signIn();
break;
case R.id.bn_logout:
signOut();
break;
}
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
// Needed Methods
private void signIn(){
Intent intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(intent, REQ_CODE);
}
private void signOut() {
Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(@NonNull Status status) {
updateUI(false);
}
});
}
private void handleResult(GoogleSignInResult result){
if(result.isSuccess()){
GoogleSignInAccount account = result.getSignInAccount();
if (account != null) {
// getting the data
// name = account.getDisplayName();
email = account.getEmail();
personGivenName = account.getGivenName();
personFamilyName = account.getFamilyName();
// personId = account.getId();
img_url = account.getPhotoUrl().toString();
// setting the data
/* Name.setText(name);
Email.setText(email);
GivenName.setText(personGivenName);
FamilyName.setText(personFamilyName);
PersonId.setText(personId);
Glide.with(this).load(img_url).into(prof_pic);*/
updateUI(true);
}
}else{
updateUI(false);
}
}
private void updateUI(boolean isLogin){
if(isLogin){
prof_layout.setVisibility(View.VISIBLE);
SignIn.setVisibility(View.GONE);
Toast.makeText(Signup.this, "Success !",
Toast.LENGTH_LONG).show();
Intent intent = new Intent(this, MainActivity.class);
Bundle extras = new Bundle();
extras.putString("email",email);
extras.putString("firstName",personGivenName);
// extras.putString("lastName",personFamilyName);
extras.putString("profile_Pic",img_url);
intent.putExtra("gProfileRecord",extras);
startActivity(intent);
}else {
Toast.makeText(Signup.this, "Failed !",
Toast.LENGTH_LONG).show();
SignIn.setVisibility(View.VISIBLE);
prof_layout.setVisibility(View.GONE);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode,resultCode,data);
if(requestCode == REQ_CODE){
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleResult(result);
}
}
}
錯誤
致命異常:主要 臨cess:com.example.yash.lifecatalog_beatprocrastination,PID:12006 java.lang.RuntimeException:無法啓動活動ComponentInfo {com.example.yash.lifecatalog_beatprocrastination/com.example.yash.lifecatalog_beatprocrastination.MainActivity}:java.lang。 NullPointerException:試圖在android上的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817) 上的null對象引用 上調用虛擬方法'void android.widget.TextView.setText(java.lang.CharSequence)'。 app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread $ H.handle消息(ActivityThread.java:1593) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main( ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal .os.ZygoteInit.main(ZygoteInit.java:767) 原因:java.lang.NullPointerException:試圖調用虛擬方法'void android.widget.TextView.setText(java。 lang.CharSequence)'在null對象引用 at com.example.yash.lifecatalog_beatprocrastination.MainActivity.onCreate(MainActivity.java:50) at android.app.Activity.performCreate(Activity.java:6975) at android .app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 在android.app .ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1593) 在android.os.Handler.dispatchMessage(Handler.java:105) 在android.os.Looper.loop(Looper.java:164) 在android.app.ActivityThread.main(ActivityThread.java:6541) 在java.lang.reflect.Method中。調用(本地方法) 在com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
工作就像一個魅力! –
最受歡迎:) –
接受它作爲回答布魯 – Orvenito