我正在编写一个应用程序,其中我用他们的个人资料图片,名称和dob获取Facebook好友列表
但我的一些朋友没有给他们的生日日期,所以取代生日我默认为空,但现在代替 null 我要显示:生日不是提到
请参阅以下我现有应用的屏幕截图:
喜欢:Vikas Rana已经在facebook上发布了DOB而AJay 11月没有在Facebook上发布DOB
> VikY
January 1
> AJamber
Null
此处, Null 我要显示:生日未提及
FriendsList.java:
public View getView(int position, View convertView, ViewGroup parent) {
JSONObject jsonObject = null;
try {
jsonObject = jsonArray.getJSONObject(position);
} catch (JSONException e) {
}
FriendItem friendItem;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.listfb_friends, null);
friendItem = new FriendItem();
convertView.setTag(friendItem);
} else {
friendItem = (FriendItem) convertView.getTag();
}
friendItem.friendPicture = (ImageView) convertView
.findViewById(R.id.picture);
friendItem.friendName = (TextView) convertView
.findViewById(R.id.name);
friendItem.friendDob = (TextView) convertView
.findViewById(R.id.dob);
friendItem.friendLayout = (RelativeLayout) convertView
.findViewById(R.id.friend_item);
try {
String uid = jsonObject.getString("uid");
String url = jsonObject.getString("pic_square");
friendItem.friendPicture.setImageBitmap(picturesGatherer
.getPicture(uid, url));
} catch (JSONException e) {
friendItem.friendName.setText("");
friendItem.friendDob.setText("");
}
try {
friendItem.friendName.setText(jsonObject.getString("name"));
if(!friendItem.friendDob.equals(""))
{
friendItem.friendDob.setText(jsonObject.getString("birthday"));
}
else
{
friendItem.friendDob.setText("Birthday Not Mentioned");
}
} catch (JSONException e) {
friendItem.friendName.setText("");
friendItem.friendDob.setText("");
}
listofshit.put(position, friendItem);
return convertView;
}
如果我正在编写类似这样的代码:
try {
friendItem.friendName.setText(jsonObject.getString("name"));
friendItem.friendDob.setText(jsonObject.getString("birthday"));
} catch (JSONException e) {
friendItem.friendName.setText("");
friendItem.friendDob.setText("");
}
finally
{
friendItem.friendDob.setText("Birthday Not Mentioned");
}
所以我为所有Facebook朋友生日提示生日,即使对于他们也提到。
答案 0 :(得分:2)
尝试这个。
try{
if(jsonObject.getString("birthday")!= null && !jsonObject.getString("birthday").equals("")){
friendItem.friendDob.setText(jsonObject.getString("birthday"));
}else{
friendItem.friendDob.setText("Birthday Not Mentioned");
}
}catch(JSONException e){
e.printStackTrace();
}
答案 1 :(得分:1)
您将获得NullPointerException
使用try-catch
的位置。
我想你可能已经做到了。现在,只需在catch block
中编写代码,就可以在textview / edittext上设置文本“未提及的生日”(无论您使用什么来显示d.o.b)。
只需使用: -
try {
friendItem.friendName.setText(jsonObject.getString("name"));
friendItem.friendDob.setText(jsonObject.getString("birthday"));
}
catch (Exception e) {
friendItem.friendName.setText("Name"); // try it for now.
friendItem.friendDob.setText("Birthday Not Mentioned"); // Have to be here.
}
答案 2 :(得分:1)
试试这段代码:
try
{
friendItem.friendName.setText(jsonObject.getString("name"));
friendItem.friendDob.setText(jsonObject.getString("birthday"));
if(!(jsonObject.getString("birthday").equalsIgnoreCase("null")))
{
friendItem.friendDob.setText(jsonObject.getString("birthday"));
}
else
{
friendItem.friendDob.setText("Birthday Not Mentioned");
}
} catch (JSONException e)
{
friendItem.friendName.setText("");
friendItem.friendDob.setText("");
}
listofshit.put(position, friendItem);
return convertView;
}