如何在Android中检查布尔值?
在我的Android应用程序中,有两种类型的登录。用户可以使用Facebook或Google+登录。当用户成功登录时,它将显示来自该特定社交帐户的数据。例如,当用户登录Facebook时,它将显示来自Facebook的数据。我已经包括了我的代码:如何在Android中检查布尔值?,android,facebook,boolean-logic,Android,Facebook,Boolean Logic,在我的Android应用程序中,有两种类型的登录。用户可以使用Facebook或Google+登录。当用户成功登录时,它将显示来自该特定社交帐户的数据。例如,当用户登录Facebook时,它将显示来自Facebook的数据。我已经包括了我的代码: demo.java boolean isFacebook; if (!isFacebook) { txtName.setText(PrefUtils.getCurrentUser(WelcomeScreenActivity.th
demo.java
boolean isFacebook;
if (!isFacebook) {
txtName.setText(PrefUtils.getCurrentUser(WelcomeScreenActivity.this).firstname);
txtEmail.setText(PrefUtils.getCurrentUser(WelcomeScreenActivity.this).email);
// fetching facebook's profile picture
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
URL imageURL = null;
try {
imageURL = new URL("https://graph.facebook.com/" + user.facebookID + "/picture?type=small");
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
bitmap = BitmapFactory.decodeStream(imageURL.openConnection().getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
imgProfile.setImageBitmap(bitmap);
}
}.execute();
} else {
isFacebook = false;
SharedPreferences pref = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
String username = pref.getString("PROFILE_USERNAME", "");
String email = pref.getString("PROFILE_EMAIL_GOOGLE", "");
pref.getString("PROFILE_IMAGE_USER", "");
txtName.setText(username);
txtEmail.setText(email);
}
}
demo.java
boolean-isFacebook;
如果(!isFacebook){
setText(PrefUtils.getCurrentUser(WelcomeScreenActivity.this.firstname);
setText(PrefUtils.getCurrentUser(WelcomeScreenActivity.this.email);
//获取facebook的个人资料图片
新建异步任务(){
@凌驾
受保护的Void doInBackground(Void…参数){
URL imageURL=null;
试一试{
imageURL=新URL(“https://graph.facebook.com/“+user.facebookID+”/picture?type=small”);
}捕获(格式错误){
e、 printStackTrace();
}
试一试{
位图=BitmapFactory.decodeStream(imageURL.openConnection().getInputStream());
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(void避免){
super.onPostExecute(避免);
imgProfile.setImageBitmap(位图);
}
}.execute();
}否则{
isFacebook=false;
SharedReferences pref=GetSharedReferences(“MyPrefs”,Context.MODE\u PRIVATE);
String username=pref.getString(“PROFILE_username”,”);
String email=pref.getString(“PROFILE\u email\u GOOGLE”,”);
pref.getString(“PROFILE\u IMAGE\u USER”,“用户”);
txtName.setText(用户名);
txtEmail.setText(电子邮件);
}
}
在这段代码中,当用户登录Facebook时,它会显示Google+详细信息。我怎样才能纠正这个问题呢?你实际上做的与你描述的相反。如果
isFacebook
为false
,表示它不是Facebook,则您正在从Facebook获取数据
将第一个if语句更改为
if(isFacebook)
您的情况不正确
一定是这样
if (!isFacebook) {
// do false logic here you need to check for GOOGLE
}
// do true logic here you need to check for FB
改用这个(只是犯了一个小错误)
如果将isFacebook初始化为
布尔值isFacebook=true,也会更好代码>我在你的帖子中没有看到任何问题。。。那么你到底想要什么呢?可能的阅读:你应该能够把它分成许多小的测试,看看什么不起作用。它是否解决了?不@AdityaVyas LakhanI会尝试你的解决方案,但当用户点击google+登录,然后显示数据,但当用户登录Facebook时,无法获得数据,请帮助我@Aditya Vyas Lakhan为什么添加isFacebook=false;Facebook=true;很抱歉编辑,但我不理解真假的概念@阿迪提亚·维亚斯·拉坎
boolean isFacebook;
if (isFacebook) {
txtName.setText(PrefUtils.getCurrentUser(WelcomeScreenActivity.this).firstname);
txtEmail.setText(PrefUtils.getCurrentUser(WelcomeScreenActivity.this).email);
// fetching facebook's profile picture
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
URL imageURL = null;
try {
imageURL = new URL("https://graph.facebook.com/" + user.facebookID + "/picture?type=small");
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
bitmap = BitmapFactory.decodeStream(imageURL.openConnection().getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
imgProfile.setImageBitmap(bitmap);
}
}.execute();
} else {
//get google + details here
}
}
bt_fb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
isFacebook= true;`
}
bt_twitter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
isFacebook= false;`
}