Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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 仍在使用Android登录_Java_Php_Android_Mysql_Login - Fatal编程技术网

Java 仍在使用Android登录

Java 仍在使用Android登录,java,php,android,mysql,login,Java,Php,Android,Mysql,Login,再次提醒我,在我之前的文章中,我被告知在代码中使用AsyncTask,以避免mainexceptionthread,现在我遇到了以下错误: ** ** 我认为这是因为异常e部分,它有inputEmail.setText(e.toString()); 但是当我把它改为e.printstacktrace时,它什么结果也没有。你们能帮我吗伙计们这是我的密码: 安卓: ** public类主扩展活动{ 编辑文本输入电子邮件; 编辑文本输入密码; 按钮btnLogin; 私人对话; @凌驾 创建时受保护的

再次提醒我,在我之前的文章中,我被告知在代码中使用AsyncTask,以避免mainexceptionthread,现在我遇到了以下错误:

**

**

我认为这是因为异常e部分,它有inputEmail.setText(e.toString()); 但是当我把它改为e.printstacktrace时,它什么结果也没有。你们能帮我吗伙计们这是我的密码:

安卓:

**

public类主扩展活动{
编辑文本输入电子邮件;
编辑文本输入密码;
按钮btnLogin;
私人对话;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
inputEmail=(EditText)findViewById(R.id.inputEmail);
inputPassword=(EditText)findViewById(R.id.inputPassword);
按钮btnLogin=(按钮)findViewById(R.id.btnLogin);
//按钮点击事件
btnLogin.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
//在后台线程中创建新产品
验证();
}
}); 
}
公共无效验证()
{
if(inputEmail.getText().toString().equals(“”)| | inputPassword.getText().toString().equals(“”)
{
Toast.makeText(getApplicationContext(),“填充空字段”,Toast.LENGTH_SHORT).show();
}
其他的
{
新建phpconnect().execute();
}
}
类phpconnect扩展了异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pDialog=新建进度对话框(Main.this);
pDialog.setMessage(“登录…”);
pDialog.setUndeterminate(假);
pDialog.setCancelable(真);
pDialog.show();
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
ArrayList后参数=新的ArrayList();
添加(新的BasicNameValuePair(“eadd”,inputEmail.getText().toString());
添加(新的BasicNameValuePair(“密码”,inputPassword.getText().toString());
//将参数传递给php web服务进行身份验证
//字符串valid=“1”;
字符串响应=null;
试一试{
响应=CustomHttpClient.executeHttpPost(“http://10.0.2.2/TheCalling/log_in.php“,后参数);//输入远程PHP、ASP、Servlet文件链接
String res=response.toString();
//res=res.trim();
res=res.replaceAll(“\\s+”,”);
//错误.setText(res);
如果(相对等于(“1”))
{
Toast.makeText(getApplicationContext(),“正确的用户名或密码”,Toast.LENGTH_SHORT).show();
意图i=新意图(Main.this,MainMenu.class);
星触觉(i);
}
其他的
如果(res.equals(“0”))
{
Toast.makeText(getApplicationContext(),“对不起!!用户名或密码不正确”,Toast.LENGTH\u SHORT).show();
}
}捕获(例外e){
inputEmail.setText(例如toString());
}
返回null;
}
/**
*完成后台任务后,关闭“进度”对话框
* **/
受保护的void onPostExecute(字符串文件\u url){
//完成后关闭对话框
pDialog.disclose();
} 
}
}
**

这也是我的PHP代码:

**


由于以下原因导致出现错误:

catch (Exception e) {
    inputEmail.setText(e.toString());
}
在这里,您试图通过从异步任务的后台线程更改EditText的内容来更改应用程序的UI。由于我怀疑您是否真的想在电子邮件输入字段中向用户显示错误,并且这样做只是为了调试,请尝试使用
e.printStackTrace()
而不是
inputEmail.setText(e.toString())


此外,您需要将您的
Toast.show()
调用包装在
rununuithread()
runnable中。

您不能在
doInBackground
中显示Toast消息,只需将其移动到
onPostExecute
。是的,还有这个

catch (Exception e) {
                    inputEmail.setText(e.toString());
                }

原因:android.view.ViewRootImpl$CalledFromErrorThreadException:只有创建视图层次结构的原始线程才能接触其视图
hmm,你能给我解释一下吗,我不明白。对不起,为什么要在doInBackground中更新视图?这是一个后台线程,主线程上的所有操作都应该在AsyncTask的postExecute方法中完成,因为这是关于您正在编写的登录内容的第四个问题。我建议您放慢速度,阅读Android编程。
<?php
include("db_config.php");
$eadd=addslashes($_POST['eadd']);
$password=addslashes($_POST['password']);
$sql="SELECT * FROM users WHERE eadd='$eadd' and password='$password'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$count=mysql_num_rows($result);
if($count==1)
    {
    echo "1";
    //(If result found send 1 to android)
    }
else
    {
    echo "0";
    //(If result not found send o to android)
    }
?>
catch (Exception e) {
    inputEmail.setText(e.toString());
}
catch (Exception e) {
                    inputEmail.setText(e.toString());
                }