我正在使用android Volley提出请求.所以我使用这段代码.我不明白一件事.我检查我的服务器,params始终为null.我认为getParams()不起作用.我该怎么做才能解决这个问题.
RequestQueue queue = MyVolley.getRequestQueue();
JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.POST,SPHERE_URL,null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
System.out.println(response);
hideProgressDialog();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
hideProgressDialog();
}
}) {
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("id","1");
params.put("name", "myname");
return params;
};
};
queue.add(jsObjRequest);
Run Code Online (Sandbox Code Playgroud) 我读了一篇关于Volley的帖子,我知道这是一个很棒的网络库.但我无法理解一件事.
所有请求都是异步任务?
当我想使用Volley发送asyncTask请求时,我是否需要在AsyncTask中输入Volley请求?或者如果它已经是AsyncTask请求,我应该调用Volley Request吗?
private class MyClass extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
// do Volley request
}
}
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?
当我点击地图的标记时,我陷入困境无法想象为什么信息窗口不显示.我在开发者安卓网站上看到,我应该只添加标记并给它们标题,片段等等.但结果却一无所获.
public class ClubMapActivity extends DefaultActivity implements GoogleMap.OnMarkerClickListener {
private GoogleMap mMap;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.clubmap);
Bundle bundle = getIntent().getExtras();
double lat = bundle.getDouble("latitude");
double lng = bundle.getDouble("longitude");
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
mMap.addMarker(new MarkerOptions()
.position(new LatLng(lat, lng))
.title(bundle.getString("clubNmae")).snippet("AAA"));
animateCameraTo(lat, lng);
CameraUpdate zoom=CameraUpdateFactory.zoomTo(20);
mMap.animateCamera(zoom);
}
public void animateCameraTo(final double lat, final double lng)
{
CameraUpdate center=
CameraUpdateFactory.newLatLng(new LatLng(lat, lng));
CameraUpdate zoom=CameraUpdateFactory.zoomTo(18);
mMap.moveCamera(center);
mMap.animateCamera(zoom);
}
@Override
public boolean onMarkerClick(Marker marker) {
if(marker.isInfoWindowShown()) {
marker.hideInfoWindow();
} else {
marker.showInfoWindow();
} …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我使用的是volley imageLoader,但有一个问题我无法理解.当我只调用response.getBitmap并将其设置为背景imageview时,它很好,但是当我添加一些代码,例如System.out.println(response.getBitmap)时,它会崩溃.换句话说,如果我只调用respone.getBitmap一次就可以了,但是当两次或更多时它会崩溃.这里有什么问题?
public class NewsAdapter extends BaseAdapter {
private ArrayList<News> mNewsList;
private DefaultActivity mActivity;
private ImageLoader imageLoader;
private RequestQueue mRequestQueue;
public NewsAdapter(DefaultActivity pActivity, ArrayList<News> newsList){
mActivity = pActivity;
mNewsList = newsList;
mRequestQueue = Volley.newRequestQueue(mActivity);
imageLoader = new ImageLoader(mRequestQueue, new BitmapLruCache(
BitmapLruCache.getDefaultLruCacheSize()));
}
private class ViewHolder {
public ImageView networkImageView;
public TextView title;
public TextView description;
}
@Override
public int getCount() {
return mNewsList.size();
}
@Override
public News getItem(int i) {
return mNewsList.get(i);
}
@Override
public long getItemId(int i) {
return …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个例子如何将文件和其他参数一起发送到服务器.
我必须发送服务器JSON
{
"title": "title",
"file": "uploaded file instance",
"location": {
"lat": 48.8583,
"lng": 2.29232,
"place": "Eiffel Tower"
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能创建Retrofit来处理这种情况?
如果file是一个字符串,我知道如何处理它.如果file是File对象,我不知道如何做到这一点.
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
guard let mostRecentLocation = locations.last else {
return
}
print(mostRecentLocation.coordinate.latitude)
print(mostRecentLocation.coordinate.longitude)
Timer.scheduledTimer(timeInterval: 60.0, target: self, selector: #selector(StartTestVC.sendDataToServer), userInfo: nil, repeats: true)
}
func sendDataToServer (latitude: Double, longitude: Double) {
SFUserManager.shared.uploadPULocation(latitude, longitude:longitude)
}
Run Code Online (Sandbox Code Playgroud)
我想每1分钟将数据发送到服务器。我正在使用Timer.scheduledTimer和设置选择器。但是如何向我的函数发送经/纬度参数呢?
我读过有关Picasso图像下载lib但有一个问题我无法解决它.这是大图像下载.当我有大图像,即2000 x 1920时,它被压碎(内存不足).
我怎么能解决这个问题?
Picasso.with(上下文).load(myUrl).into(ImageView的);
在我的应用程序中,我想创建调试和发布构建类型
这是我的gradle代码
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.1"
defaultConfig {
applicationId "com.pmbo.android.pmb"
minSdkVersion 15
targetSdkVersion 21
versionCode 10001
versionName "1.0"
}
signingConfigs {
myConfigs{
storeFile file("ncv.jks");
storePassword("qwerty");
keyAlias("MyNewApp");
keyPassword("qwerty");
}
}
buildTypes {
release {
minifyEnabled false
debuggable false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig singningConfigs.myConfigs
}
debug {
debuggable true
applicationIdSuffix ".debug"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:6.5.87'
compile 'com.google.code.gson:gson:2.3.1'
}
Run Code Online (Sandbox Code Playgroud)
每次我尝试构建gradle时都会出现此错误
Error:(30, 0) Could not find property 'singningConfigs' on BuildType_Decorated{name=release, debuggable=false, …Run Code Online (Sandbox Code Playgroud) 我做了很多研究,我无法得到一个我创建自己的框架的东西,我想要放入gradle.
我不希望每次从一个项目到另一个项目的大量代码都复制粘贴.
我想这样做
compile 'xxxxx'
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能设置它?
在我的应用程序中,我想为arrayList添加一些值,我希望添加的项目将是arrayList的第一项.我用这个代码
Sphere[] spheres = new ObjectMapper().readValue(response.getJSONArray("data").toString(),Sphere[].class);
mSphereList = Arrays.asList(spheres);
Sphere sphere = new Sphere();
sphere.setId(0);
sphere.setTitle("All");
mSphereList.add(0,sphere);
mListView.setAdapter(new CategoryAdapter(CategoryActivity.this,mSphereList));
Run Code Online (Sandbox Code Playgroud)
当我运行我的应用程序时,我得到例外
ERROR/AndroidRuntime(25878): FATAL EXCEPTION: main
java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:404)
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么.你能告诉我一个好的解决方案吗?