所以,我正在定义一个云函数,它应该调用foursquare api并从返回的JSON生成一个餐馆列表(每个餐馆都是一个ParseObject).我成功地做到了这一点,但是在尝试将这些对象保存到我的数据库并通过调用response.success()将它们发送回我的手机时遇到了问题.下面的大代码块将列表保存到我的数据库中,但是如果我尝试的话
Parse.Object.saveAll(restaurants)
response.success(restaurants)
Run Code Online (Sandbox Code Playgroud)
我在保存所有餐馆之前结束了这个功能.我尝试使用这一行代替
Parse.Object.saveAll(restaurants).then(response.success(restaurants))
Run Code Online (Sandbox Code Playgroud)
,但只有一半的餐馆在我收到错误之前得到保存"失败:未捕获尝试使用指向未保存的新对象的对象保存对象".如果我在不尝试保存列表的情况下调用response.success(餐馆),我也会收到此错误.我读到这是解析中的一个错误,阻止某人打印或传递未保存的ParseObjects.有任何想法吗?我也尝试在http请求上使用.then,但是我遇到了同样的问题或者出现了新的错误:"com.parse.ParseException:i/o failure:java.net.SocketTimeoutException:read timed out."
Parse.Cloud.define("callFourSquare", function(request, response) {
//The Parse GeoPoint with current location for search
var geo = request.params.location;
var geoJson = geo.toJSON();
var url = "https://api.foursquare.com/v2/venues/explore?ll=" + geoJson.latitude + ","
+ geoJson.longitude + "§ion=food&sortByDistance=1&limit=50&venuePhotos=1&categoryId=4d4b7105d754a06374d81259&client_id= C043AJBWKIPBAXOHLPA0T40SG5L0GGMQRWQCCIKTRRVLFPTH"
+ "&client_secret=Y1GZZRHXEW1I3SQL3LTHQFNIZRDCTRG12FVIQI5QGUX0VIZP&v=20140715";
console.log(url);
//Call to FourSquare api, which returns list of restaurants and their details
Parse.Cloud.httpRequest({
method: "GET",
url: url,
success: function (httpResponse) {
var restaurants = [];
var json = httpResponse.data;
var venues = json.response.groups[0].items;
console.log(venues.length) …Run Code Online (Sandbox Code Playgroud) 我正在尝试重新调整图库中的图片以适应图像视图并在合身后保存其位图,这样我就可以通过按下"添加"按钮将其上传到我的Parse数据库.目前,当按下"add"时,我检查位图是否为空,如果不是,则将其转换为Parsefile以保存在我的Parse数据库中.添加到数据库工作(我测试了这个没有使用Picasso),但我不知道如果我使用Picasso调整大小和加载如何获取位图.我尝试创建一个目标并使用它的回调,但我不能在目标上使用.fit().我已经使用回调,但我希望有更好的方法来实现位图的保存.
这就是我现在正在做的事情,尝试在加载后从imageview获取位图:
if(uri != null) {
Picasso.with(mContext).load(uri).skipMemoryCache().fit().centerCrop().into(imgPreview, new Callback() {
@Override
public void onSuccess() {
mBitmap = ((BitmapDrawable)imgPreview.getDrawable()).getBitmap();
}
@Override
public void onError() {
// TODO Auto-generated method stub
}
});
}
Run Code Online (Sandbox Code Playgroud) 所以,我想要在一个片段中添加ViewPager视图(而不是片段)作为gridview的标题,但是当我将它设置为我的标题视图时,我的ViewPager不会出现.我目前正在使用Etsy的StaggeredGridView来允许我的gridview有一个标题,我使用PagerAdapter而不是FragmentStatePagerAdapter来滚动视图而不是片段.我打算只使用片段,但我不确定这是否会好,因为我认为,这将被认为是嵌套片段,只支持4.2+并通过支持库:我的应用程序支持4.0以上,此刻,我正在使用原生片段.
我也试过以编程方式设置视图,但仍然没有显示.
我在ViewPager中设置了一个toast,看看是否有任何实际创建,并且toast按预期显示,但仍然没有标题.我试图膨胀的观点不应该是问题,因为如果我将它作为标题单独使用它就会显示出来.这是我到目前为止所拥有的:
@Override
public View onCreateView(final LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//inflate fragment which contains the gridview. Have a pointer to the gridview.
View v = inflater.inflate(R.layout.fragment_menu, container, false);
mGridView = (StaggeredGridView) v.findViewById(R.id.dishesGridView);
View header = inflater.inflate(R.layout.view_pager_header, container, false);
ViewPager mPager = (ViewPager) header.findViewById(R.id.pager);
//list of views to test header
final List<View> views = new ArrayList<View>();
views.add(inflater.inflate(R.layout.menu_header, null));
mPager.setAdapter(new PagerAdapter() {
public View getView(int position) {
return views.get(position);
}
@Override
public Object instantiateItem(ViewGroup collection, int position) { …Run Code Online (Sandbox Code Playgroud) android android-layout android-gridview android-fragments android-viewpager