- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有 6 个字段的扩展 ParseObject 类。除 ParseFile getter 方法外,所有字段都返回正确的数据。以老式方式获取 ParseFiles 是可行的,但由于某种原因,当我使用扩展类时,调用 GetDataCallback 时数据为空。它有一个 URL 和图像名称,但数据字段为空。
我的扩展类(class):
package [mypackage];
import com.parse.ParseClassName;
import com.parse.ParseFile;
import com.parse.ParseObject;
import java.io.Serializable;
@ParseClassName("Listing")
public class Listing extends ParseObject implements Serializable {
private boolean active;
private String description, title, username;
private int price;
private ParseFile file;
public Listing() {
super();
}
public void setDetail(boolean active, String description, String title,
String username, int price, ParseFile file) {
this.active = active;
this.description = description;
this.price = price;
this.title = title;
this.username = username;
this.file = file;
}
/* getter methods */
public boolean getIsActive() {
return getBoolean("active");
}
public String getDescription() {
return getString("description");
}
public int getPrice() {
return getInt("price");
}
public String getListingTitle() { /* getTitle() reserved by android */
return getString("title");
}
public String getUsername() {
return getString("username");
}
public ParseFile getFile() {
return getParseFile("image");
}
}
调用 getter 方法的位置:
public void getListings() {
ParseQuery<Listing> query = ParseQuery.getQuery(Listing.class);
/* only retrieve active listings */
query.whereEqualTo("active", true);
query.findInBackground(new FindCallback<Listing>() {
@Override
//public void done(List<ParseObject> listingList, ParseException e) {
public void done(List<Listing> listingList, ParseException e) {
if (e == null) {
Log.d("listing", "Retrieved " + listingList.size() + " listings");
/* clear adapter before populating */
adapter.clear();
/* iterate through listings and create listing objects */
for (Listing listingObject : listingList) {
boolean active;
String description, title, username;
int price;
active = listingObject.getIsActive();
username = listingObject.getUsername();
description = listingObject.getDescription();
title = listingObject.getListingTitle();
price = listingObject.getPrice();
file = listingObject.getFile();
/* create a listing object to be added to a ListView */
Listing listing = new Listing();
listing.setDetail(active, description, title, username, price, file);
listings.add(listing);
} /* end for loop */
}
else {
Log.d("listing", "Error: " + e.getMessage());
}
}
});
}
在适配器中:
public View getView(int position, View convertView, ViewGroup parent){
if(convertView == null){
LayoutInflater mLayoutInflater = LayoutInflater.from(context);
convertView = mLayoutInflater.inflate(R.layout.listing_row_item, null);
}
Listing listing = listings.get(position);
TextView titleView = (TextView) convertView.findViewById(R.id.listing_title);
TextView priceView = (TextView) convertView.findViewById(R.id.listing_price);
final ParseImageView imageView = (ParseImageView) convertView.findViewById(R.id.ivPicture);
titleView.setText(listing.getListingTitle());
priceView.setText("$" + String.valueOf(listing.getPrice()));
listing.getFile().getDataInBackground(new GetDataCallback() { //getFile() returns null
public void done(byte[] data, ParseException e) {
编辑:我相信我的根本误解是如何设置扩展 ParseObject 的值。正如下面的答案所示,这里的 put
Parse 方法实际上将值放入对象中。我的印象是 put
仅用于实际的数据库操作,因此我的 setter 方法没有正确设置 ParseObject。
最佳答案
呃...我们是如此接近。我发现了问题,您没有将值设置为 ParseObject 中的字段,这就是适配器中所有内容均为空的原因。将以下内容添加到您的 Listing 类中并更改 setDetail 方法,如下所示:
public void setDetail(boolean active, String description, String title,
String username, int price, ParseFile file) {
setIsActive(active);
setIsActive(description);
setPrice(price);
setListingTitle(title);
setUsername(username);
setFile(file);
}
public void setIsActive(boolean a) {
put("active", a);
}
public void setDescription(String s) {
put("description", s);
}
public void setPrice(int p) {
put("price", p);
}
public void setListingTitle(String t) {
put("title", t);
}
public void setUsername(String u) {
put("username", u);
}
public void setFile(ParseFile f) {
put("image", f);
}
旧答案
我可能是错的,但我很确定您应该保存 ParseFile 的 URL 而不是 ParseFile 本身,并使用该 URL 来获取文件。所以在done(..)方法中你应该做类似的事情:
file.getUrl();
并将其设置为字符串。继续前进,如果
关于java - getParseFile(string key) 使用扩展的 ParseObject 类从 Parse.com 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27753769/
如果您想使用 String.Concat() 连接 5 个或更多字符串,则它会使用 Concat(String[])。 为什么不一直使用 Concat(String[]) 而不再需要 Concat(S
今天在使用 String 时,我遇到了一种我以前不知道的行为。我无法理解内部发生的事情。 public String returnVal(){ return "5";
似乎在我所看到的任何地方,都有一些过时的版本,这些版本不再起作用。 我的问题似乎很简单。我有一个Java类,它映射到derby数据库。我正在使用注释,并且已经成功地在数据库中创建了所有其他表,但是在这
一、string::size_type() 在C++标准库类型 string ,在调用size函数求解string 对象时,返回值为size_type类型,一种类似于unsigned类型的int 数据
我正在尝试将数据保存到我的 plist 文件中,其中包含字符串数组的定义。我的plist - enter image description here 我将数据写入 plist 的代码是 -- let
我有一个带有键/值对的 JavaScript 对象,其中值是字符串数组: var errors = { "Message": ["Error #1", "Error #2"], "Em
例如,为了使用相同的函数迭代 List 和 List> ,我可以编写如下内容: import java.util.*; public class Test{ public static voi
第一个Dictionary就像 Dictionary ParentDict = new Dictionary(); ParentDict.Add("A_1", "1")
这是我的 jsp 文件: 我遇到了错误 The method replace(String, String, String) in the type Functions is not appl
我需要一些帮助。我有一个方法应该输出一个包含列表内容的 txt 文件(每行中的每个项目)。列表项是字符串数组。问题是,当我调用 string.Join 时,它返回文字字符串 "System.Strin
一位同事告诉我,使用以下方法: string url = "SomeURL"; string ext = "SomeExt"; string sub = "SomeSub"; string s
给定类: public class CategoryValuePair { String category; String value; } 还有一个方法: public
我正在尝试合并 Stream>>对象与所有 Streams 中的键一起映射到单个映射中. 例如, final Map someObject; final List>> list = someObjec
在这里使用 IDictionary 的值(value)是什么? 最佳答案 使用接口(interface)的值(value)始终相同:切换到另一个后端实现时,您不必更改客户端代码。 请考虑稍后分析您的代
我可以知道这两个字典声明之间的区别吗? var places = [String: String]() var places = [Dictionary()] 为什么当我尝试以这种方式附加声明时,只有
在 .NET 4.0 及更高版本中存在 string.IsNullOrWhiteSpace(string) 时,在检查字符串时使用 string.IsNullOrEmpty(string) 是否被视为
这个名字背后的原因是什么? SS64在 PowerShell 中解释此处的字符串如下: A here string is a single-quoted or double-quoted string
我打算离开 this 文章,尝试编写一个接受字符串和 &str 的函数,但我遇到了问题。我有以下功能: pub fn new(t_num: S) -> BigNum where S: Into {
我有一个结构为 [String: [String: String]] 的多维数组。我可以使用 for 循环到达 [String: String] 位,但我不知道如何访问主键(这个位 [String:
我正在尝试使用 sarama(管理员模式)创建主题。没有 ConfigEntries 工作正常。但我需要定义一些配置。 我设置了主题配置(这里发生了错误): tConfigs := map[s
我是一名优秀的程序员,十分优秀!