user3106953
user3106953

Reputation: 21

switch condition not working in Android

so i have this code:

package com.sunil.phpconnect;

import java.io.BufferedReader;
import java.io.InputStreamReader;

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

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
        Button nao;
        Button foto;
        Button novamen;
        TextView ola;    
        HttpClient httpclient1, httpclient;
        HttpGet request1, request;
        HttpResponse response1, response;
        String url,iduser, urlmensagens;


             @Override
             public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
              Bundle  extras = getIntent().getExtras();
              iduser= extras.getString("userid");


               TextView result = (TextView) findViewById(R.id.tvResult);
               //String g = result.getText().toString();
              // String h = "valor";

               urlmensagens = ("http://mywebsite.php?iduser="+iduser);
               novamen = (Button) findViewById(R.id.mensagens);


                   //cenas da net
                    try {
                     httpclient1 = new DefaultHttpClient();
                     request1 = new HttpGet(urlmensagens);
                     response1 = httpclient1.execute(request1);

                    }
                    catch (Exception e){

                    }
                    try{ 
                      BufferedReader dr = new BufferedReader(new InputStreamReader(
                        response1.getEntity().getContent()));


                      String mensage = "";


                      mensage = dr.readLine();

                      String check_sms = mensage;

                      Toast.makeText(getApplicationContext(), check_sms,
                              Toast.LENGTH_LONG).show();



                //novamen.setText(check_sms + " Mensagens por ler!");





                      switch(check_sms) {
                      case "b":
                          novamen.setVisibility(View.GONE);
                          break;
                      case "a":
                          novamen.setVisibility(View.VISIBLE);
                          break;
                      default:
                          novamen.setVisibility(View.GONE);
                  }


                    } catch (Exception e) {
                          // Code to handle exception  

                         }

              url = ("http://mywebsite.php?action=requestuserdata&userid="+iduser);


              try {
               httpclient = new DefaultHttpClient();
               request = new HttpGet(url);
               response = httpclient.execute(request);
              }

              catch (Exception e) {
               }


              try {
               BufferedReader rd = new BufferedReader(new InputStreamReader(
                 response.getEntity().getContent()));
               String line = "";
               line = rd.readLine();



                   if(line == null){
                       Toast.makeText(getApplicationContext(), "Numero nao atribuido.",
                                  Toast.LENGTH_LONG).show();
                       Intent wowmuch = new Intent(getApplicationContext(), pin.class);
                     startActivity(wowmuch);    
                   }else{
                       result.append(line);

                   }

              } catch (Exception e) {

              }

              novamen = (Button) findViewById(R.id.mensagens);
                novamen.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {

                            chamaMensagens();
                            }

                        public void chamaMensagens () {

                            Intent mens = new Intent(getApplicationContext(),mensagens.class);
                            mens.putExtra("userid", iduser);
                            startActivity(mens);}});


              foto = (Button) findViewById(R.id.button1);
              foto.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {

                    Chamafoto();
                }
                public void Chamafoto() {

                    Intent wowmuch = new Intent(getApplicationContext(), Foto.class);
                    wowmuch.putExtra("userid", iduser);        
                    startActivity(wowmuch);
                }
            });
              Toast.makeText(getApplicationContext(), iduser, 
                      Toast.LENGTH_SHORT).show();
              nao = (Button) findViewById(R.id.button2);
                nao.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {

                            chamaConsulta();
                            }
                    }
                );
                }

                        public void chamaConsulta () {

                            Intent wowmuch = new Intent(getApplicationContext(),pin.class);

                            startActivity(wowmuch); 
                        }


}

when i get to this part:

switch(check_sms) {
                          case "b":
                              novamen.setVisibility(View.GONE);
                              break;
                          case "a":
                              novamen.setVisibility(View.VISIBLE);
                              break;
                          default:
                              novamen.setVisibility(View.GONE);
                      }

The button is supost to be invisible/gone when whe variable "check_sms" value is "b".

I tested if the variable is showing and it is in the Toast.

I tried with if statement too and doesn't do nothing.

Upvotes: 0

Views: 321

Answers (4)

ganzux
ganzux

Reputation: 904

Of course you can use a swich with Java 7, but in this case (only 2 options), I will use

if ( "a".equalsIgnoreCase( check_sms ) ){
   ....
} else {
   ....
}

Never use check_sms == "a" for this purpose.

Upvotes: 0

Phantômaxx
Phantômaxx

Reputation: 38098

switch(someInteger) will work.
switch(someChar) will work.
switch(someEnum) will work.
switch(someString) will work only in JAVA 1.7.

As far as I know, Java 1.7 isn't yet supported by Android.

Upvotes: 5

Sripathi
Sripathi

Reputation: 1780

You can use string in java 1.7 only as Der Golem specified. You can use enum, char, int types. You can refer http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html for more info.

From the above link

Unlike if-then and if-then-else statements, the switch statement can have a number of possible execution paths. A switch works with the byte, short, char, and int primitive data types. It also works with enumerated types (discussed in Enum Types), the String class, and a few special classes that wrap certain primitive types: Character, Byte, Short, and Integer (discussed in Numbers and Strings).

Upvotes: 0

Rupesh
Rupesh

Reputation: 3505

switch on String?? go for Enum... and I guess you have compiled src code with jdk1.7.. compile it using jdk1.6... jdk1.7 isn't yet supported..

Upvotes: 0

Related Questions