toast.maketext not updating value

toast.maketext not updating value



When i use switch2 or any other switch Toast.maketext continuously showing "Light 1 is now on..." or "Light 1 is now Off" is there any problem with if else statement or HTTPRequestTasks? i'm trying to access NodeMCU using this application. I am able to control NodeMCU through web browser by typing url but in application it is stuck on switch1. Following is the java code for this application:


package com.example.nodemcu.aoatechapp;

import android.annotation.SuppressLint;
import android.content.Context;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.Switch;
import android.widget.Toast;
import android.support.v7.app.AlertDialog;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.ref.WeakReference;
import java.net.URI;
import java.net.URISyntaxException;

public class BedRoom1Activity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener

final Context context = this;
private Switch switch1, switch2, switch3, switch4;
String address = "aoatech.ddns.net";

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

switch1 = (Switch)findViewById(R.id.switch1);
switch1.setOnCheckedChangeListener(this);
switch2 = (Switch)findViewById(R.id.switch2);
switch2.setOnCheckedChangeListener(this);
switch3 = (Switch)findViewById(R.id.switch3);
switch3.setOnCheckedChangeListener(this);
switch4 = (Switch)findViewById(R.id.switch4);
switch4.setOnCheckedChangeListener(this);


public void onCheckedChanged (CompoundButton compoundButton, boolean b)
String serverAdress = address + ":3000";
String ledStatus;
if (switch1.isChecked())
ledStatus = "1";
Toast.makeText(BedRoom1Activity.this, "Light 1 is now Turned On...", Toast.LENGTH_SHORT).show();
HttpRequestTask1 R1 = new HttpRequestTask1(serverAdress,(BedRoom1Activity) context);
R1.execute(ledStatus);

else if (!switch1.isChecked())
ledStatus = "0";
Toast.makeText(BedRoom1Activity.this, "Light 1 is now Turned Off...", Toast.LENGTH_SHORT).show();
HttpRequestTask1 R1 = new HttpRequestTask1(serverAdress,(BedRoom1Activity) context);
R1.execute(ledStatus);

else if (switch2.isChecked())
ledStatus = "1";
Toast.makeText(BedRoom1Activity.this, "Light 2 is now Turned On...", Toast.LENGTH_SHORT).show();
HttpRequestTask2 R2 = new HttpRequestTask2(serverAdress,(BedRoom1Activity) context);
R2.execute(ledStatus);

else if (!switch2.isChecked())
ledStatus = "0";
Toast.makeText(BedRoom1Activity.this, "Light 2 is now Turned Off...", Toast.LENGTH_SHORT).show();
HttpRequestTask2 R2 = new HttpRequestTask2(serverAdress,(BedRoom1Activity) context);
R2.execute(ledStatus);

else if (switch3.isChecked())
ledStatus = "1";
Toast.makeText(BedRoom1Activity.this, "Fan is now Turned On...", Toast.LENGTH_SHORT).show();
HttpRequestTask3 R3 = new HttpRequestTask3(serverAdress,(BedRoom1Activity) context);
R3.execute(ledStatus);

else if (!switch3.isChecked())
ledStatus = "0";
Toast.makeText(BedRoom1Activity.this, "Fan is now Turned Off...", Toast.LENGTH_SHORT).show();
HttpRequestTask3 R3 = new HttpRequestTask3(serverAdress,(BedRoom1Activity) context);
R3.execute(ledStatus);

else if (switch4.isChecked())
ledStatus = "1";
Toast.makeText(BedRoom1Activity.this, "Socket is now Turned On...", Toast.LENGTH_SHORT).show();
HttpRequestTask4 R4 = new HttpRequestTask4(serverAdress,(BedRoom1Activity) context);
R4.execute(ledStatus);

else if (!switch4.isChecked())
ledStatus = "0";
Toast.makeText(BedRoom1Activity.this, "Socket is now Turned Off...", Toast.LENGTH_SHORT).show();
HttpRequestTask4 R4 = new HttpRequestTask4(serverAdress,(BedRoom1Activity) context);
R4.execute(ledStatus);


private static class HttpRequestTask1 extends AsyncTask<String, Void, String>

private String serverAdress;
private String serverResponse = "";
AlertDialog dialog;
private WeakReference<BedRoom1Activity> activityReference;
private HttpRequestTask1(String serverAdress, BedRoom1Activity context)
this.serverAdress = serverAdress;
this.activityReference = new WeakReference<>(context);
dialog = new AlertDialog.Builder(activityReference.get())
.setTitle("HTTP Response from Ip Address:")
.setCancelable(true)
.create();

@Override
protected String doInBackground(String... params)
dialog.setMessage("Data sent , waiting response from server...");
if (!dialog.isShowing())
dialog.show();

String val = params[0];
final String url = "http://" + serverAdress + "/light1/" + val;
try
HttpClient client = new DefaultHttpClient();
HttpGet getRequest = new HttpGet();
getRequest.setURI(new URI(url));
HttpResponse response = client.execute(getRequest);
InputStream inputStream = null;
inputStream = response.getEntity().getContent();
BufferedReader bufferedReader =
new BufferedReader(new InputStreamReader(inputStream));
serverResponse = bufferedReader.readLine();
inputStream.close();
catch (URISyntaxException e)
e.printStackTrace();
serverResponse = e.getMessage();
catch (ClientProtocolException e)
e.printStackTrace();
serverResponse = e.getMessage();
catch (IOException e)
e.printStackTrace();
serverResponse = e.getMessage();

return serverResponse;

@Override
protected void onPostExecute(String s)
dialog.setMessage(serverResponse);
if (!dialog.isShowing())
dialog.show();

@Override
protected void onPreExecute()
dialog.setMessage("Sending data to server, please wait...");
if (!dialog.isShowing())
dialog.show();



private static class HttpRequestTask2 extends AsyncTask<String, Void, String>

private String serverAdress;
private String serverResponse = "";
AlertDialog dialog;
private WeakReference<BedRoom1Activity> activityReference;
private HttpRequestTask2(String serverAdress, BedRoom1Activity context)
this.serverAdress = serverAdress;
this.activityReference = new WeakReference<>(context);
dialog = new AlertDialog.Builder(activityReference.get())
.setTitle("HTTP Response from Ip Address:")
.setCancelable(true)
.create();

@Override
protected String doInBackground(String... params)
dialog.setMessage("Data sent , waiting response from server...");
if (!dialog.isShowing())
dialog.show();

String val = params[0];
final String url = "http://" + serverAdress + "/light2/" + val;
try
HttpClient client = new DefaultHttpClient();
HttpGet getRequest = new HttpGet();
getRequest.setURI(new URI(url));
HttpResponse response = client.execute(getRequest);
InputStream inputStream = null;
inputStream = response.getEntity().getContent();
BufferedReader bufferedReader =
new BufferedReader(new InputStreamReader(inputStream));
serverResponse = bufferedReader.readLine();
inputStream.close();
catch (URISyntaxException e)
e.printStackTrace();
serverResponse = e.getMessage();
catch (ClientProtocolException e)
e.printStackTrace();
serverResponse = e.getMessage();
catch (IOException e)
e.printStackTrace();
serverResponse = e.getMessage();

return serverResponse;

@Override
protected void onPostExecute(String s)
dialog.setMessage(serverResponse);
if (!dialog.isShowing())
dialog.show();

@Override
protected void onPreExecute()
dialog.setMessage("Sending data to server, please wait...");
if (!dialog.isShowing())
dialog.show();



private static class HttpRequestTask3 extends AsyncTask<String, Void, String>

private String serverAdress;
private String serverResponse = "";
AlertDialog dialog;
private WeakReference<BedRoom1Activity> activityReference;
private HttpRequestTask3(String serverAdress, BedRoom1Activity context)
this.serverAdress = serverAdress;
this.activityReference = new WeakReference<>(context);
dialog = new AlertDialog.Builder(activityReference.get())
.setTitle("HTTP Response from Ip Address:")
.setCancelable(true)
.create();

@Override
protected String doInBackground(String... params)
dialog.setMessage("Data sent , waiting response from server...");
if (!dialog.isShowing())
dialog.show();

String val = params[0];
final String url = "http://" + serverAdress + "/fan/" + val;
try
HttpClient client = new DefaultHttpClient();
HttpGet getRequest = new HttpGet();
getRequest.setURI(new URI(url));
HttpResponse response = client.execute(getRequest);
InputStream inputStream = null;
inputStream = response.getEntity().getContent();
BufferedReader bufferedReader =
new BufferedReader(new InputStreamReader(inputStream));
serverResponse = bufferedReader.readLine();
inputStream.close();
catch (URISyntaxException e)
e.printStackTrace();
serverResponse = e.getMessage();
catch (ClientProtocolException e)
e.printStackTrace();
serverResponse = e.getMessage();
catch (IOException e)
e.printStackTrace();
serverResponse = e.getMessage();

return serverResponse;

@Override
protected void onPostExecute(String s)
dialog.setMessage(serverResponse);
if (!dialog.isShowing())
dialog.show();

@Override
protected void onPreExecute()
dialog.setMessage("Sending data to server, please wait...");
if (!dialog.isShowing())
dialog.show();



private static class HttpRequestTask4 extends AsyncTask<String, Void, String>

private String serverAdress;
private String serverResponse = "";
AlertDialog dialog;
private WeakReference<BedRoom1Activity> activityReference;
private HttpRequestTask4(String serverAdress, BedRoom1Activity context)
this.serverAdress = serverAdress;
this.activityReference = new WeakReference<>(context);
dialog = new AlertDialog.Builder(activityReference.get())
.setTitle("HTTP Response from Ip Address:")
.setCancelable(true)
.create();

@Override
protected String doInBackground(String... params)
dialog.setMessage("Data sent , waiting response from server...");
if (!dialog.isShowing())
dialog.show();

String val = params[0];
final String url = "http://" + serverAdress + "/socket/" + val;
try
HttpClient client = new DefaultHttpClient();
HttpGet getRequest = new HttpGet();
getRequest.setURI(new URI(url));
HttpResponse response = client.execute(getRequest);
InputStream inputStream = null;
inputStream = response.getEntity().getContent();
BufferedReader bufferedReader =
new BufferedReader(new InputStreamReader(inputStream));
serverResponse = bufferedReader.readLine();
inputStream.close();
catch (URISyntaxException e)
e.printStackTrace();
serverResponse = e.getMessage();
catch (ClientProtocolException e)
e.printStackTrace();
serverResponse = e.getMessage();
catch (IOException e)
e.printStackTrace();
serverResponse = e.getMessage();

return serverResponse;

@Override
protected void onPostExecute(String s)
dialog.setMessage(serverResponse);
if (!dialog.isShowing())
dialog.show();

@Override
protected void onPreExecute()
dialog.setMessage("Sending data to server, please wait...");
if (!dialog.isShowing())
dialog.show();






1 Answer
1



please notice:


if (switch1.isChecked()) {



and


else if (!switch1.isChecked()) {



All possible conditions are included in these two condition express!


switch1.isChecked()



either equal ture or flase, so


ture


flase


Toast.makeText(BedRoom1Activity.this, "Light 1 is now Turned On...", Toast.LENGTH_SHORT).show();



certainly executed! and other branch are omitted.



You could write if and elseif for judging each swithch status. such as:


if (switch1.isChecked())

else




if (switch2.isChecked())

else




Edited
You set multiple CompoundButton listener,so you could firstyly check which one status changed like this:


switch (compoundButton.getId())
case R.id.switch1:
if (switch1.isChecked())

else


break;
case R.id.switch2:

break;

.....






you mean i should use if and else only??

– Ahmed Ansari
Sep 16 '18 at 0:30






yes! please think the logic carefully again~

– navylover
Sep 16 '18 at 0:32






i used if and else and those all switches which were off just popped up all at once and caused application crash. I tried my best on this code when i gave up then i posted here spent around 4 hours on it but unable to catch the error.

– Ahmed Ansari
Sep 16 '18 at 0:37






Okie! I will try this i'm sleepy now :D well thanks for your response ☺

– Ahmed Ansari
Sep 16 '18 at 0:56



Thanks for contributing an answer to Stack Overflow!



But avoid



To learn more, see our tips on writing great answers.



Required, but never shown



Required, but never shown




By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Popular posts from this blog

𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

ャフサォクコ ケウ,コ,ワ メ,ロスョノ゙,クネ,フムカヤヲニ,エコ゚ツ ウイオン゙ケワサネォキモュキォウイノンコチ゚メヌナイゥフュ,カヒウネェ ネ,ホノケ,ムュキ ッボーミュハ,チ ツス ィ メウイマヤ,゙ウチ ヅ ロ,ォジヌェ ャヌット ェ,マャ,チナエヒネソキツテ トホヲヲミーァ

How do I collapse sections of code in Visual Studio Code for Windows?