所以我有这段代码:
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);
}
}
当我到达这一部分时:
switch(check_sms) {
case "b":
novamen.setVisibility(View.GONE);
break;
case "a":
novamen.setVisibility(View.VISIBLE);
break;
default:
novamen.setVisibility(View.GONE);
}
当变量“check_sms”值为“b”时,按钮是不可见/不可用的。
我测试了变量是否正在显示并且它在Toast中。
我也尝试使用if语句而且什么都不做。
答案 0 :(得分:5)
switch(someInteger)
会奏效
switch(someChar)
会奏效
switch(someEnum)
会奏效
switch(someString)
仅适用于 JAVA 1.7 。
据我所知,Android尚不支持Java 1.7。
答案 1 :(得分:0)
开启String
??转到Enum
...我想你已经用jdk1.7编译了src代码..使用jdk1.6编译它... jdk1.7尚不支持..
答案 2 :(得分:0)
只能在Der Golem指定的情况下在java 1.7中使用string。您可以使用enum,char,int类型。您可以参考http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html了解更多信息。
从上面的链接
与if-then和if-then-else语句不同,switch语句可以有许多可能的执行路径。交换机使用byte,short,char和int原始数据类型。它也适用于枚举类型(在枚举类型中讨论),String类和一些包含某些基本类型的特殊类:Character,Byte,Short和Integer(在Numbers和Strings中讨论)。
答案 3 :(得分:0)
当然你可以使用带有Java 7的开关,但在这种情况下(只有2个选项),我会用
if ( "a".equalsIgnoreCase( check_sms ) ){
....
} else {
....
}
永远不要为此目的使用check_sms ==“a”。