Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用onPostExecute推送MySQL数据时出错_Java_Android - Fatal编程技术网

Java 使用onPostExecute推送MySQL数据时出错

Java 使用onPostExecute推送MySQL数据时出错,java,android,Java,Android,我是编程新手。我正在做一个登录系统,但当我登录时,我得到了那个错误。我不知道怎么解决它。我还有一个问题:使用聊天和好友(添加、删除)系统创建登录系统是否太难 因为我想这样做,但我一周前才开始编程,我能这样做吗 FATAL EXCEPTION: main Process: complete.lyne.myapplication, PID: 18933 java.lang.ArrayIndexOutOfBoundsException: length=2; index=2 at complete.ly

我是编程新手。我正在做一个登录系统,但当我登录时,我得到了那个错误。我不知道怎么解决它。我还有一个问题:使用聊天和好友(添加、删除)系统创建登录系统是否太难

因为我想这样做,但我一周前才开始编程,我能这样做吗

FATAL EXCEPTION: main
Process: complete.lyne.myapplication, PID: 18933
java.lang.ArrayIndexOutOfBoundsException: length=2; index=2
at complete.lyne.myapplication.Login$SolicitaDados.onPostExecute(Login.java:110)
at complete.lyne.myapplication.Login$SolicitaDados.onPostExecute(Login.java:91)
at android.os.AsyncTask.finish(AsyncTask.java:660)
at android.os.AsyncTask.-wrap1(AsyncTask.java)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:677)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
这是我的密码:

package complete.lyne.myapplication;

import android.content.Context;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import java.io.IOException;

// import br.com.simplepass.loading_button_lib.customViews.CircularProgressButton;

public class Login extends AppCompatActivity {

    EditText loginEmail, loginSenha;
    Button btLogar;
    TextView refCadastrar;

    String url = "";
    String parametro = "";

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

        loginEmail = (EditText)findViewById(R.id.loginEmail);
        loginSenha = (EditText)findViewById(R.id.loginSenha);
        btLogar = (Button)findViewById(R.id.btLogar);
        refCadastrar = (TextView)findViewById(R.id.refCadastrar);

        refCadastrar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent abreCadastro = new Intent(Login.this, Cadastro.class);
                startActivity(abreCadastro);
            }
        });

        btLogar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                ConnectivityManager connectivityManager = (ConnectivityManager)
                        getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();

                if (networkInfo != null && networkInfo.isConnected()) {

                    String email = loginEmail.getText().toString();
                    String senha = loginSenha.getText().toString();

                    if(email.isEmpty() && senha.matches(".*[a-z].*")) {
                        loginEmail.setError("Insira seu endereço de Email.");
                    } else if (email.matches(".*[a-z].*") && senha.isEmpty()) {
                        loginSenha.setError("Insira sua Senha.");
                    } else if (email.isEmpty() && senha.isEmpty()) {
                            Toast.makeText(getApplicationContext(), "Nenhum campo pode ficar vazio.", Toast.LENGTH_LONG).show();
                    } else {

                        // Casa
                        url = "http://192.168.1.100/lyne/logar.php";

                        // Badran
                        // url = "http://172.16.2.15/lyne/logar.php";

                        parametro = "email=" + email + "&senha=" + senha;

                        new SolicitaDados().execute(url);
                    }
                }
                else {
                    Toast.makeText(getApplicationContext(), "Nenhuma conexão com a Internet foi encontrada.", Toast.LENGTH_LONG).show();
                }
            }
        });
    }

    private class SolicitaDados extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... urls) {

                return Conexao.postDados(urls[0], parametro);
        }

        @Override
        protected void onPostExecute(String resultado) {

           if(resultado != null) {
                if (resultado.contains("login_ok")) {

                    String[] dados = resultado.split(",");

                    Intent abreHome = new Intent(Login.this, Home.class);

                    abreHome.putExtra("idusu", dados[1]);
                    abreHome.putExtra("nomeusu", dados[2]);

                    startActivity(abreHome);
                } else {
                    Toast.makeText(getApplicationContext(), "Usuário ou senha incorretos.", Toast.LENGTH_LONG).show();
                }
            }
        }
    }

    @Override
    protected void onPause() {
        super.onPause();
        finish();
    }

}
package complete.lyne.myapplication;
导入android.content.Context;
导入android.content.Intent;
导入android.graphics.BitmapFactory;
导入android.graphics.Color;
导入android.net.ConnectivityManager;
导入android.net.NetworkInfo;
导入android.os.AsyncTask;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
导入android.widget.Toast;
导入java.io.IOException;
//导入br.com.simplepass.loading_button_lib.customViews.CircularProgressButton;
公共类登录扩展了AppCompatActivity{
EditText loginEmail,loginSenha;
按钮btLogar;
TextView参考地籍;
字符串url=“”;
字符串parametro=“”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
loginEmail=(EditText)findViewById(R.id.loginEmail);
loginSenha=(EditText)findViewById(R.id.loginSenha);
btLogar=(按钮)findViewById(R.id.btLogar);
refcadastar=(TextView)findViewById(R.id.refcadastar);
refcadastar.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent abreCadastro=新Intent(Login.this,Cadastro.class);
星触觉(abreCadastro);
}
});
btLogar.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
ConnectivityManager ConnectivityManager=(ConnectivityManager)
getSystemService(Context.CONNECTIVITY\u服务);
NetworkInfo NetworkInfo=connectivityManager.getActiveNetworkInfo();
if(networkInfo!=null&&networkInfo.isConnected()){
字符串email=loginEmail.getText().toString();
字符串senha=loginSenha.getText().toString();
if(email.isEmpty()&&senha.matches(“.[a-z].])){
loginEmail.setError(“Insira seu endereço de Email.”);
}else if(email.matches(“%a-z]”)和&senha.isEmpty(){
loginSenha.setError(“Insira sua Senha”);
}else if(email.isEmpty()&&senha.isEmpty()){
Toast.makeText(getApplicationContext(),“Nenhum campo pode ficar vazio.”,Toast.LENGTH_LONG.show();
}否则{
//卡萨
url=”http://192.168.1.100/lyne/logar.php";
//巴德兰
//url=”http://172.16.2.15/lyne/logar.php";
parametro=“email=“+email+”&senha=“+senha;
新建requestadados().execute(url);
}
}
否则{
Toast.makeText(getApplicationContext(),“Nenhuma conexão com a Internet foi encontrada.”,Toast.LENGTH_LONG.show();
}
}
});
}
私有类requestadados扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…URL){
返回Conexao.postDados(URL[0],parametro);
}
@凌驾
受保护的void onPostExecute(字符串resultado){
if(resultado!=null){
if(resultado.contains(“login_ok”)){
字符串[]dados=resultado.split(“,”);
Intent abreHome=newintent(Login.this,Home.class);
abreHome.putExtra(“idusu”,护墙板[1]);
abreHome.putExtra(“nomeusu”,护墙板[2]);
星触觉(abreHome);
}否则{
Toast.makeText(getApplicationContext(),“Usuário ou senha incorrectoros.”,Toast.LENGTH_LONG.show();
}
}
}
}
@凌驾
受保护的void onPause(){
super.onPause();
完成();
}
}

您正在拆分字符串:

String[] dados = resultado.split(",");
假设至少有三件:

abreHome.putExtra("idusu", dados[1]);
abreHome.putExtra("nomeusu", dados[2]);

但看起来情况并非如此。检查
护墙板的长度,然后再从中访问元素。

正在拆分字符串:

String[] dados = resultado.split(",");
假设至少有三件:

abreHome.putExtra("idusu", dados[1]);
abreHome.putExtra("nomeusu", dados[2]);

但看起来情况并非如此。检查
护墙板的长度,然后再从中访问元素。

您要求的是数组中不存在的索引

看起来你在寻找两个物体,而不是三个,但你找错了地方

您应该编辑代码,使其如下所示:

abreHome.putExtra("idusu", dados[0]);
abreHome.putExtra("nomeusu", dados[1]);

您请求的索引在数组中不存在

看起来你在寻找两个物体,而不是三个,但你找错了地方

您应该编辑代码,使其如下所示:

abreHome.putExtra("idusu", dados[0]);
abreHome.putExtra("nomeusu", dados[1]);

我相信他试图从1开始,而不是从0开始。我相信他试图从1开始,而不是从0开始,index.thx,修复了那个错误,但现在我在这行上得到了一个新错误uNome=getIntent().getExtras().getString(“nomeusu”);textViewN.setText(uNome);你知道为什么吗?thx,修复了那个错误,但是现在我在这行上得到了一个新错误uNome=getIntent().getExtras().getString(“nomeusu”);textViewN.setText(uNome);你知道为什么吗?