小编And*_*rov的帖子

用于带回调的异步 API 的 Android AutocompleteTextView 适配器

我致力于通过一些 REST API 实现自动完成建议(它实际上是 Nokia Here Geocoder Autocomplete API,但它并不那么重要)。我为AutoCompleteTextView.

public class GeoAutocompleteAdapter extends BaseAdapter implements Filterable {

@Override
public Filter getFilter() {
    Filter filter = new Filter() {

        @Override
        protected Filter.FilterResults performFiltering(CharSequence constraint) {
            FilterResults filterResults = new FilterResults();

            // obtain some autocomplete data

            filterResults.values = res;
            filterResults.count = res.size();
            return filterResults;
        }
        //...
      }
//...
}
Run Code Online (Sandbox Code Playgroud)

据我了解,部分"obtain some autocomplete data"在线程池中运行。如果我以同步方式获得自动完成的结果 - 它的工作。例如,我可以使用HttpURLConnectionInputStream- 所有同步阻塞调用在这里工作得很好。

但是如果我需要在这里调用一些以异步方式运行的 API,比如通过 Callback\Listener 呢?

我怎样才能在 performFiltering 中调用这样的东西?

request.execute( …
Run Code Online (Sandbox Code Playgroud)

android autocompletetextview

4
推荐指数
1
解决办法
1031
查看次数

如何通过AIDL传递SurfaceHolder?

我有2个独立的Android应用程序(apk)。

应用1 SurfaceView在其中创建,并应为其他应用提供AIDL方法,以获取SurfaceHolderfor 的实例SurfaceView。因此,其他应用程序将能够在该视图中绘制,该视图显示在应用程序编号1中。

Surface由于它实现了Parcelable接口,因此我可以轻松地通过aidl 进行自身传输。

// IMainService.aidl
package com.commonsware.cwac.preso.demo.service;
import android.view.Surface;

interface IMainService {
    Surface getSurf();
}
Run Code Online (Sandbox Code Playgroud)

但是第三方SDK需要SurfaceHolder使用。所以问题是-我如何SurfaceHolder为给定Surface实例创建,或者如何SurfaceHolder通过AIDL进行传输。有什么例子可以实现Parcelable SurfaceHolder吗?

我的用例(如果有的话):应用程序1作为a启动,Service并在Presentation Screen上绘制UI。而且,我需要一种方法来让另一个应用程序通过应用程序1内的Nokia Here Mobile SDK显示导航数据。我需要SurfaceHolder使用 api。

任何帮助将不胜感激。

android surfaceview aidl here-api surfaceholder

3
推荐指数
1
解决办法
1450
查看次数

通用 kotlin 工厂中未经检查的强制转换

我正在尝试在 kotlin 中创建一个通用工厂,用于将某些字符串解析为模型类:

internal interface Model

data class UserId(val id: String, val name: String, val link: String): Model
data class Shelf(val id: String, val name: String, val bookCount: Int): Model

internal inline fun <reified T: Model> getParser(): Parser<T> {
    return when (T::class) {
            UserId::class -> UserIdParser() as Parser<T>
            Shelf::class -> UserShelvesParser() as Parser<T>
            else -> throw Exception("can't match proper parser")
        }
}

internal interface Parser<out T: Model> {
    fun parse(xml: String): T
}


internal class UserIdParser : Parser<UserId> {
    override …
Run Code Online (Sandbox Code Playgroud)

generics android kotlin

1
推荐指数
1
解决办法
2076
查看次数