所以我的sdk从15到21,当我打电话时setBackgroundDrawable(),Android Studio告诉我它已被弃用.
我想过用它来绕过它:
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
layout.setBackgroundDrawable(getResources().getDrawable(R.drawable.img_wstat_tstorm));
} else {
layout.setBackground(getResources().getDrawable(R.drawable.img_wstat_tstorm));
}
Run Code Online (Sandbox Code Playgroud)
但是,我在"setBackground()"收到错误.
那么,你会如何应对呢?
我正在使用Google Maps API v2,我从我需要转换为LatLng的SharedPreferences中获取位置坐标单个字符串"-34.8799074,174.7565664".
有人可以帮忙吗?
谢谢!
我有我的MainActivity管理两个一起工作的片段.我的一个方法是ListFragment上的监听器接口,MainActivity负责切换片段.
但由于某种原因,似乎addToBackStack不起作用.当我点击列表时,转到下一个片段并点击设备的后退按钮......它只是在设备主屏幕上的应用程序之外.
谁知道问题是什么?
@Override
public void OnSelectionChanged(Object object) {
DetailFragment DetailFragment = (DetailFragment) getFragmentManager().findFragmentById(R.id.detail_fragment);
if (DetailFragment != null) {
DetailFragment.setTitle(object);
} else {
DetailFragment newDetailFragment = new DetailFragment();
Bundle args = new Bundle();
args.putSerializable(DetailFragment.KEY_POSITION,object);
newDetailFragment.setArguments(args);
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, newDetailFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用这个使用这个JSON对象的应用程序遇到一些麻烦:http://api.worldweatheronline.com/premium/v1/marine.ashx? q = -34.8799074,174.7565664&key = 3477e975c4d9a8a0eaac2b2c818f4& format = json&tide = YES
有些日子它工作正常,从JSON对象中获取数据没有问题,有些日子我得到这种错误:JSONException:索引5超出范围[0..5).
12-04 11:12:30.328 1916-1931/android_kaizen.com.drawerskippermate E/FetchWeatherTask? Index 5 out of range [0..5)
org.json.JSONException: Index 5 out of range [0..5)
at org.json.JSONArray.get(JSONArray.java:263)
at org.json.JSONArray.getJSONObject(JSONArray.java:480)
at android_kaizen.com.drawerskippermate.MainActivity$FetchWeatherTask.getWeatherDataFromJson(MainActivity.java:579)
at android_kaizen.com.drawerskippermate.MainActivity$FetchWeatherTask.doInBackground(MainActivity.java:754)
at android_kaizen.com.drawerskippermate.MainActivity$FetchWeatherTask.doInBackground(MainActivity.java:318)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:864)
Run Code Online (Sandbox Code Playgroud)
甚至没有改变一行代码!! 奇怪的是,可以在Web浏览器中看到JSON对象.
有没有人遇到类似的情况,可以解释为什么会发生?
谢谢!
编辑:这是我的代码:
private DayForecast[] getWeatherDataFromJson(String forecastJsonStr) throws JSONException {
final String JSON_DATA = "data";
final String JSON_WEATHER = "weather";
final String JSON_MAX …Run Code Online (Sandbox Code Playgroud) 我有一个switch语句来更改image resourceId:
int imageId = 0;
switch (i) {
case 0:
imageId = R.drawable.image0;
break;
case 1:
imageId = R.drawable.image1;
break;
case 2:
imageId = R.drawable.image2;
break;
case 3:
imageId = R.drawable.image3;
break;
case 4:
imageId = R.drawable.image4;
break;
case 5:
imageId = R.drawable.image5;
break;
case 6:
imageId = R.drawable.image6;
break;
case 7:
imageId = R.drawable.image7;
break;
}
Run Code Online (Sandbox Code Playgroud)
但我一直试图找出如何使用循环来做到这一点,因为案例编号和每个图像末尾的数字相匹配.尝试使用for循环但没有成功.
有人可以帮忙吗?
谢谢!!