when I press the button "btUpdPlata" That is placed in the Activity MainActivity
and shows the data of the column "Plata" (numerical value in the database) of the respective user after login stops working the app
I did several tests, but it always ends up crashing the app, What can be?
plata.php
<?php
include_once("conn.php");
$plata=$_GET['plata'];
$query="SELECT * FROM signup where plata='{$plata}'";
$result=mysqli_query($conn ,$query);
while($row=mysqli_fetch_array($result)){
$output_info = "Plata ".$row['plata'];
echo "platita";
echo $output_info;
}
mysqli_close();
?>
Background plata
public class BackgroundWorkerPlata extends AsyncTask<String,Void,String> {
MainActivity ob;
Context context;
AlertDialog alertDialog;
BackgroundWorkerPlata (Context ctx) {
context = ctx;
}
@Override
protected String doInBackground(String... params) {
String type = params[0];
String login_url = "insert url here";
if(type.equals("plata")) {
try {
String plata = params[5];
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("plata","UTF-8")+"="+URLEncoder.encode(plata,"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("Cargando dinero");
}
@Override
protected void onPostExecute(String result) {
// alertDialog.setMessage(result);
// alertDialog.show();
if (result.contentEquals("platita")) {
ob.PlataET.setText(result.toString().replace(',','
'));
}
}
@Override
protected void onProgressUpdate (Void...values){
super.onProgressUpdate(values);
}
}
In MainActivity:
public void cambiarTextoUpdatePlata(View v) {
String plata = PlataET.getText().toString();
String type = "plata";
BackgroundWorkerPlata backgroundWorkerPlata = new BackgroundWorkerPlata(this);
backgroundWorkerPlata.execute(type, plata);
TextView updatePlata = (TextView) findViewById(R.id.PlataET);
updatePlata.setText("Tienes " + plata + " Pesos");
{
}
Button:
<Button
android:id="@+id/btUpdPlata"
android:onClick="cambiarTextoUpdatePlata"
android:text="Actualizar Plata" />
UPDATE
crash:
08-06 03:11:05.690 23352-23352/net.prontocars.prontocars E/AndroidRuntime: FATAL EXCEPTION: main
Process: net.prontocars.prontocars, PID: 23352
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22429)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22429)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.widget.TextView.getText()' on a null object reference
at net.prontocars.prontocars.MainActivity.cambiarTextoUpdatePlata(MainActivity.java:45)
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22429)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
UPDATE 2
new crash after fix textview
08-06 05:03:31.719 12631-12631/net.prontocars.prontocars E/AndroidRuntime: FATAL EXCEPTION: main
Process: net.prontocars.prontocars, PID: 12631
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.contentEquals(java.lang.CharSequence)' on a null object reference
at net.prontocars.prontocars.BackgroundWorkerPlata.onPostExecute(BackgroundWorkerPlata.java:99)
at net.prontocars.prontocars.BackgroundWorkerPlata.onPostExecute(BackgroundWorkerPlata.java:43)
at android.os.AsyncTask.finish(AsyncTask.java:667)
at android.os.AsyncTask.-wrap1(AsyncTask.java)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:684)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)