单击片段

时间:2017-05-14 11:32:12

标签: android-fragments

我正在创建一个应用程序,其中有三个标签活动。在标签三中我有一个textview名称作为登录文本,每当用户点击此文本时,应该打开一个新活动但是当我们点击它时应用程序崩溃。 我已经做了很多研究来解决这个问题,但我终于无法解决我在这里解决我的问题请帮忙。 提前致谢。 这是我的loginActivity。

import android.app.ProgressDialog;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;

public class loginActivity extends AppCompatActivity implements View.OnClickListener {
    private EditText email_Id;
    private EditText password;
    private TextView sign_Up;
    private Button sign_In;
    private ProgressDialog progressDialog;
    private FirebaseAuth firebaseAuth;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        firebaseAuth=FirebaseAuth.getInstance();
     //   if(firebaseAuth.getCurrentUser()!=null){
            // directly start user profile activity
       //     finish();
         //   startActivity(new Intent(this,userProfileActivity.class));
       //}
        progressDialog=new ProgressDialog(this);
        email_Id=(EditText)findViewById(R.id.email_id);
        password=(EditText)findViewById(R.id.password);
        sign_In=(Button)findViewById(R.id.sign_In);
        sign_Up=(TextView)findViewById(R.id.sign_up);
        sign_In.setOnClickListener(this);
        sign_Up.setOnClickListener(this);

    }
    private void user_Login(){
        String email=email_Id.getText().toString().trim();
        String pass_word=password.getText().toString().trim();
        if(TextUtils.isEmpty(email)){
            // email is empty
            Toast.makeText(this,"please enter email",Toast.LENGTH_SHORT).show();
            return;// to stop the function from executation.
        }
        if(TextUtils.isEmpty(pass_word)){
            // email is empty
            Toast.makeText(this,"please enter password",Toast.LENGTH_SHORT).show();
            return;
        }
        // here if everything ok the user will be register
        progressDialog.setMessage("Registering User,please wait...");
        progressDialog.show();
        firebaseAuth.signInWithEmailAndPassword(email,pass_word)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                   progressDialog.dismiss();
                        if (task.isSuccessful()){
                            // start user profile activity
                            finish();
                            startActivity(new Intent(getApplicationContext(),userProfileActivity.class));
                        }
                    }
                });
    }
    @Override
    public void onClick(View view) {
        if (view==sign_In){
            // start user profile activity
            user_Login();
        }
        if(view==sign_Up){
            // go to registeration page
            finish();
            startActivity(new Intent(this,FragmentThree.class));
        }

    }

}

this is declaration

This is my login method

1 个答案:

答案 0 :(得分:0)

代码中的以下行引发异常:

 sign_Up.setOnClickListener(this);

问题是,sign_Upnull

您将sign_Up设置为:sign_Up=(TextView)findViewById(R.id.sign_up);

确保setContentView(R.layout.activity_login);(activity_login)是正确的。如果,请尝试清理并重建项目,然后重试。

更新:有可能sign_up应该是一个按钮吗?如果,你做错了演员!

更改此行中的TextView:

sign_Up=(TextView)findViewById(R.id.sign_up);

到Button,就像这样:

sign_Up=(Button)findViewById(R.id.sign_up);