gpt4 book ai didi

java - 使用 onPostExecute 推送 MySQL 数据时出错

转载 作者:太空宇宙 更新时间:2023-11-04 11:15:20 25 4
gpt4 key购买 nike

我是编程新手。我正在做一个登录系统,但是当我登录时,我收到该错误。我不知道如何解决。我还有一个问题:制作一个带有聊天和好友(添加、删除)系统的登录系统太难了吗?

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

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();
}

}

最佳答案

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

您似乎在寻找两个对象,而不是三个,但您找错了地方。

您应该将代码编辑为如下所示:

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

关于java - 使用 onPostExecute 推送 MySQL 数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45513927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com