我有一个NumberPicker,它有一个格式化程序,可以在NumberPicker旋转或手动输入值时格式化显示的数字.这工作正常,但是当第一次显示NumberPicker并且我用setValue(0)0 初始化它时没有被格式化(它应该显示为" - "而不是0).一旦我从那一点旋转NumberPicker一切正常.
如何强制NumberPicker始终格式化 - 在第一次渲染时以及在使用键盘手动输入数字时?
这是我的格式化程序
public class PickerFormatter implements Formatter {
private String mSingle;
private String mMultiple;
public PickerFormatter(String single, String multiple) {
mSingle = single;
mMultiple = multiple;
}
@Override
public String format(int num) {
if (num == 0) {
return "-";
}
if (num == 1) {
return num + " " + mSingle;
}
return num + " " + mMultiple;
}
}
Run Code Online (Sandbox Code Playgroud)
我将格式化程序添加到选择器中setFormatter(),这是我对拾取器所做的全部操作.
picker.setMaxValue(max);
picker.setMinValue(min);
picker.setFormatter(new PickerFormatter(single, multiple));
picker.setWrapSelectorWheel(wrap);
Run Code Online (Sandbox Code Playgroud) 我试图根据查询从Realm.io数据库中删除最后一个Object,如下所示:
Realm realm = Realm.getInstance(this);
final RealmResults<RealmCustomLocation> databaseLocations = realm.where(RealmCustomLocation.class).findAllSorted("timeStamp", RealmResults.SORT_ORDER_DESCENDING);
if(databaseLocations.size() >= 4){
realm.beginTransaction();
databaseLocations.removeLast();
realm.commitTransaction();
}
Run Code Online (Sandbox Code Playgroud)
realm.beginTransaction();
result.removeLast();
realm.commitTransaction()
Run Code Online (Sandbox Code Playgroud)
但是当我执行代码时,它总是以RealmException中断
io.realm.exceptions.RealmException: Removing object is not supported.
Run Code Online (Sandbox Code Playgroud)
然后我查看了RealmResults.java的源代码,我发现了这个:
所以难怪它一直崩溃,removeLast()什么都不做,只抛出一个错误!
所以我的问题是:如何从数据库中删除对象呢?!
我在Android上使用realm.io 0.77(编译'io.realm:realm-android:0.77.0').
感谢您对此的帮助!
我正在尝试插入一个通用加载圈作为占位符,同时图像正在加载像Glide或Picasso这样的图像加载器库.
我不能为我的生活找到你应该如何从xml创建一个旋转drawable.
我尝试通过创建动画列表在XML中使用AnimationDrawable,但它甚至没有显示(甚至不是静态的).
我只想要一个简单的圆圈,它可以自动旋转,所有这些都在xml drawable中,所以我可以将id作为占位符传递给我的图像加载器.如果那不可能请现在告诉我,所以我可以节省很多研究:)
编辑:一些代码使它更清晰,我需要一个旋转drawable这个Glide命令:
Glide.with(context)
.load(imageUrl)
.into(imageView)
.placeHolder(R.drawable.spinning_loading_placeholder);
Run Code Online (Sandbox Code Playgroud)
在加载图像时,将显示占位符drawable,稍后将显示图像.我需要一个能够自行旋转的抽屉.
我正在尝试在列表中查询具有主键的所有模型的数据库.这是我的查询(idsList是一个包含整数的ArrayList):
new Select().from(PostModel.class)
.where(Condition.column(PostModel$Table.ID).in(0, idsList))
.async().queryList(listener);
Run Code Online (Sandbox Code Playgroud)
但Android Studio突出了其中的条件
"Cannot resolve method 'where(com.raizlabs.android.dbflow.sql.builder.Condition.In)"
Run Code Online (Sandbox Code Playgroud)
那么条件.在不被视为条件?如何在ArrayList中使用primaryKey查询所有模型?
我正在使用DBFlow 2.0.我也可以使用常规SQL查询字符串作为替代,但我不熟悉SQL,所以如果你可以为我的问题提供SQL查询字符串,那将是一种可能的解决方法.
我正在使用Jake Wharton的VerticalViewpager,但它为最新的Android支持库提供了错误:
package android.support.v4.view;
public final class VerticalViewPagerCompat {
private VerticalViewPagerCompat() {}
public interface DataSetObserver extends PagerAdapter.DataSetObserver {}
public static void setDataSetObserver(PagerAdapter adapter, DataSetObserver observer) {
adapter.setDataSetObserver(observer);
}
}
Run Code Online (Sandbox Code Playgroud)
错误是"PagerAdapter.DataSetObserver无法解析为类型".最新的支持库已经改变了DataSetObserver的行为,并且Vertical Viewpager不再起作用.有谁知道如何解决这个问题?
我正在尝试创建一个包含对象的数据的ArrayList(就像一个地址和属性列表(相当复杂))并且我想知道:我如何让所有活动都可以访问(和编辑)对象,而不仅仅是它在inst?
基本上这个:
我通过将旧文件替换为您可以从Google网站下载的文件来手动更新我的Android Studio,因为无法自动更新.在升级之前,我的Android Studio是版本0.54我相信,升级后它是0.81.
首次启动时,我收到了一个gradle同步错误:
NoSuchMethodError: Failed to set up Android modules in project '(my app)': com.android.builder.model.Dependencies.getJavaLibraries()Ljava/util/Collection;
Run Code Online (Sandbox Code Playgroud)
从升级之前我的gradle文件同步很好,我不相信我的gradle配置是错误的.
这里发生了什么?
我正在实现一种方法,在Android中使用此方法在Google Map(v2)上显示搜索半径:
// Method for drawing a circle around the user
private void drawMapSearchRadius(int radius) {
if(mMap != null) {
final LatLng userLatLng = getUserLatLng();
if(mSearchCircle == null){
CircleOptions circleOptions = new CircleOptions();
circleOptions.fillColor(Color.parseColor("#447755ff"));
circleOptions.strokeColor(Color.TRANSPARENT);
circleOptions.center(userLatLng);
circleOptions.radius(radius);
mSearchCircle = mMap.addCircle(circleOptions);
} else {
mSearchCircle.setCenter(userLatLng);
mSearchCircle.setRadius(radius);
}
}
}
Run Code Online (Sandbox Code Playgroud)
半径是用SeekBar确定的,就像这样(我删除了一些不相关的代码):
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
final int radius = progress + DEFAULT_MIN_RADIUS;
drawMapSearchRadius(radius);
...
Run Code Online (Sandbox Code Playgroud)
当我滑动SeekBar时,圆的半径会按预期变化,但它会明显闪烁很多.它的外观和感觉非常糟糕.
有没有人遇到过这个错误,可以告诉我我做错了什么或者我能做些什么来限制,或者在最好的情况下,消除圆圈闪烁?
提前致谢
由于谷歌不是很快就能修复这样的错误,所以我没有希望解决这个问题.所以我想我的问题正在改变:有什么办法可以解决这个问题吗?
我检查了服务器的响应,它反序列化为 Map 没有问题。
一旦我附加了我的反序列化器 Retrofit 就会返回一个带有类型转换的 RetrofitError,但是即使我将 Retrofit 日志记录级别设置为 LogLevel.FULL,也不会抛出其他异常。
如何调试我的自定义解串器以检查错误来自哪里?
——
我从 wordpress 博客中获取 json 并用它反序列化
public ArrayList<Post> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
Log.d("WayTrace", "Starting Parsing " + json);
final JsonObject jsonObject = json.getAsJsonObject();
Log.d("WayTrace", "JSONObject " + jsonObject);
final JsonArray posts = jsonObject.get("posts").getAsJsonArray();
Log.d("WayTrace", "JSON posts " + posts);
final ArrayList<Post> outList = new ArrayList<>(posts.size());
for (int i = 0; i < posts.size(); i++) {
final Post post = new Post();
Log.v("WayTrace", "JSON posts …Run Code Online (Sandbox Code Playgroud) 我想创建一个按钮背景,它与 ?attr/selectableItemBackground 完全相同,但具有黑色描边轮廓。
有没有办法“扩展” ?attr/selectableItemBackground 并添加黑色轮廓,或者我是否必须创建一个全新的 stateList?