![](/img/trans.png)
[英]How to set part of text to bold when using AlertDialog.setMessage() in Android?
[英]Why am i getting a null value on my alertDialog.setMessage()?
我是从事android应用的完整初学者。 我不知道为什么我的alertDialog框始终显示空值的原因。 该代码用于通过检查数据库中的数据进行登录 。 将不胜感激。
我已将MySql端口从3306更改为3307,因为3306被阻止了。
public class BackgroundWorker extends AsyncTask<String,Void,String> { Context context; AlertDialog alertDialog; BackgroundWorker (Context ctx) { context = ctx; } @Override protected String doInBackground(String... params) { String type = params[0]; String login_url = "http://192.168.254.106/login.php"; if(type.equals("login")) { try { String user_name = params[1]; String password = params[2]; URL url = new URL(login_url); HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection(); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setDoOutput(true); httpURLConnection.setDoInput(true); OutputStream outputStream = httpURLConnection.getOutputStream(); BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8")); String post_data = URLEncoder.encode("user_name","UTF-8")+"="+URLEncoder.encode(user_name,"UTF-8")+"&" +URLEncoder.encode("password","UTF-8")+"="+URLEncoder.encode(password,"UTF-8"); bufferedWriter.write(post_data); bufferedWriter.flush(); bufferedWriter.close(); outputStream.close(); InputStream inputStream = httpURLConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1")); String result=""; String line=""; while((line = bufferedReader.readLine())!= null) { result += line; } bufferedReader.close(); inputStream.close(); httpURLConnection.disconnect(); return result; } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } return null; } @Override protected void onPreExecute() { alertDialog = new AlertDialog.Builder(context).create(); alertDialog.setTitle("Login Status"); } @Override protected void onPostExecute(String result) { alertDialog.setMessage(result); alertDialog.show(); } }
这是login.php
<?php require "connection.php"; $user_name = $_POST["user_name"]; $user_pass = $_POST["password"]; $mysql_qry = "select * from account_profiles where userName like '$user_name' and passWord like '$user_pass';"; $result = mysqli_query($conn, $mysql_qry); if(mysqli_num_rows($result) > 0) { echo "Login Success"; } else { echo "Login Failed"; } ?>
在类构造函数中处理AlertDialog
的实例化,而不是在onPreExecute
这没有意义,这将解决您的问题。
BackgroundWorker (Context context ) {
alertDialog = new AlertDialog.Builder(context).create();
}
现在,您还可以删除Context
全局变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.