小编Gab*_*tin的帖子

AutoCompleteTextView的performFiltering一直调用

我的AutoCompleteTextView有以下适配器:

class CityAutocompleteAdapter(context: Context?)
    : ArrayAdapter<City>(context, R.layout.spinner_city),
        Filterable {

    init {

    }

    private var resultList: List<City> = arrayListOf()

    override fun getCount(): Int {
        return resultList.size
    }


    override fun getItem(position: Int): City = resultList.get(position)

    override fun getItemId(position: Int): Long = position.toLong()


    override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {

        var inflater = LayoutInflater.from(context)


        val city = getItem(position)
        var convertView = inflater.inflate(R.layout.spinner_city, parent, false)

        var name: TextView = convertView.findViewById(R.id.name)
        var country: TextView = convertView.findViewById(R.id.subtitle)
        var flag: ImageView = convertView.findViewById(R.id.flag)

        name.text …
Run Code Online (Sandbox Code Playgroud)

android autocompletetextview

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

android.view.AbsSavedState $ 1无法强制转换为android.widget.CompoundButton $ SavedState

我在Crashlytics上看到以下错误,其中包含大量事件:

Caused by java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to android.widget.CompoundButton$SavedState
       at android.widget.CompoundButton.onRestoreInstanceState(CompoundButton.java)
       at android.view.View.dispatchRestoreInstanceState(View.java)
       at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java)
       at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java)
       at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java)
       at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java)
       at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java)
       at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java)
       at android.view.View.restoreHierarchyState(View.java)
       at android.support.v4.app.Fragment.restoreViewState(Fragment.java:494)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1486)
       at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
       at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269)
       at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229)
       at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:2466)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1483)
       at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
       at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269)
       at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229)
       at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:201)
       at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:620)
       at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
       at android.app.Instrumentation.callActivityOnStart(Instrumentation.java)
       at android.app.Activity.performStart(Activity.java)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)
       at android.app.ActivityThread.access$900(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
       at android.os.Handler.dispatchMessage(Handler.java)
       at android.os.Looper.loop(Looper.java)
       at android.app.ActivityThread.main(ActivityThread.java)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java) …
Run Code Online (Sandbox Code Playgroud)

android fragmentmanager

6
推荐指数
2
解决办法
871
查看次数

简单的类似于Java脚手架的CRUD生成器

在Java中,是否有任何简单,轻量级的Crud表单生成器用于Swing?

我有一个使用spring + hibernate的桌面应用程序,但我只缺少一堆GUI面板,可以编辑一些数据库实体。非常简单的属性可编辑形式,因此我必须要有一些工具来使过程自动化。我不需要任何DAO / pojo / bean / controller /服务生成。

我在其他问题上已经读过一些,但是所有解决方案似乎都涉及安装整个框架以及生成复杂的非标准Java代码。我只想要普通的秋千板。

java swing crud scaffolding

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

从本地资产加载时,jQuery Mobile无法在WebView中工作

我试图在我的Android应用程序中呈现使用jQueryMobile创建的页面,但我需要在处于脱机状态的webView中执行此操作.

为此,我开始复制我的页面的index.html并将所有必需的资产直接带到我的设备的内部存储.我然后file:///sdcard/index.html在我的设备的内部浏览器和Chrome应用程序中输入它,并且网站显示很好,有jQuery样式和所有.

然后我进入我的应用程序,在那里我有一个webView,这就是我实际需要渲染上述页面的地方.我使用加载页面loadDataWithBaseURL()(因为这是我最终需要做的),像这样:

loadDataWithBaseURL("file:///android_asset/web/", html, "text/html", "UTF-8", null);
Run Code Online (Sandbox Code Playgroud)

我将所有资产保存在资产文件夹的web目录中.

问题是,如果我加载没有资产引用的页面(只是正常调用loadUrl),它会加载但很明显没有样式或功能.当我把资产引用调用时,loadDataWithBaseURL它确实正确地读取了资产引用,但渲染仍然停留在jqueryMobile的旋转轮上,页面实际上从未加载.这就是我所看到的:

在此输入图像描述

总结一下:

  • 我使用jQuery Mobile创建了一个网站.它只是一个简单的html页面,带有jQuery的样式.

  • 我已准备好进行离线加载.我将所需资产打包到一个文件夹中,在index.html中我相对引用这些资产(例如href="web/styles.css").

  • 如果我在桌面浏览器中加载此页面而没有连接,则可以正常工作.

  • 如果我在移动浏览器(Chrome或内置浏览器)中加载此页面
    ,则可以正常运行.

  • 如果我在webview中没有资源引用的情况下加载此页面, 它就可以工作(没有样式或图像等)

  • 如果我在我的webview中加载带有资产引用的页面,它就
    不起作用,它会被旋转的轮子困住.连通性不会影响问题.

  • 如果我删除引用jQM样式表的行,则页面加载时没有样式,但图像正确加载(因此对资产的引用正确的)

请注意,因为我在jQM中完全禁用了AJAX,所以旋转轮甚至不应该首先出现:

<script>
$.mobile.ajaxEnabled = false;
</script>
Run Code Online (Sandbox Code Playgroud)

奇怪的是,AFAIK内部的Android网页浏览器和网页浏览共享同一个渲染器,所以我对这里发生的事情感到很遗憾,因为它可以正常浏览器,我可以调试正在发生的事情.

作为参考,这是我定义webView的方式:

    mWebView = (WebView) findViewById(R.id.webView);
    WebSettings s = mWebView.getSettings();
    s.setJavaScriptEnabled(true);
Run Code Online (Sandbox Code Playgroud)

我有一些其他设置,但为了简化问题我删除了它们,问题仍然存在.

有什么建议?

PD.根据要求,发布index.html文件.这是最简单的例子,只是一个空索引.问题依然存在:

<!doctype html>
<html lang=es>
<head>
<meta charset="utf-8">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-touch-fullscreen" content="yes">
<meta name="viewport" …
Run Code Online (Sandbox Code Playgroud)

android webview jquery-mobile

5
推荐指数
1
解决办法
2万
查看次数

Textarea不会在Android上的WebView上包装文本

问题与此问题相同:https://code.google.com/p/android/issues/detail?id = 55166

供参考:带有长占位符的textarea不会被文本包装并溢出控件,因此只显示部分文本.WebView在KitKat之前的设备上和默认浏览器上都会出现此问题,但在ICS之前的设备上不会出现此问题,因此这是一个必须包含在4.0.1中的错误.

有人找到了解决方法吗?也许一个js库用另一个控件替换textarea?

javascript android textarea webview

5
推荐指数
0
解决办法
319
查看次数

Dagger2和Android

我正在尝试将Dagger依赖注入实现到我的应用程序中,但我很难理解它是如何工作的,特别是来自Spring,其中DI更容易,更具声明性.

我想要做的是拥有一堆可以在我的应用程序中使用的注入就绪对象,即SharedPreferences,Network对象(OkHttp,Retrofit,Picasso ...),以及RxJava的EventBus和SchedulerProvider对象.

这个样本似乎提供了我需要的一切,但我无法掌握一些概念.

在上一页中引用的另一个示例中,他们创建了一个使用NetModule中提供的Retrofit对象的GithubService.为此,他们创建了一个像这样的GithubComponent:

@UserScope
@Component(dependencies = NetComponent.class, modules = GitHubModule.class)
public interface GitHubComponent {
    void inject(MainActivity activity);
}
Run Code Online (Sandbox Code Playgroud)

他们使用UserScope注释定义自己的范围.既然不能使用@Singleton,这是否意味着该对象不会是Singleton?范围如何真正影响DI?似乎他们只宣布一个命名范围没有更多的影响,但我不确定.

此外,我的应用程序是使用活动与碎片建立的.我是否必须为我的应用中的每个片段创建一个组件?即我需要在整个应用程序中使用我的REST api服务,我是否必须使用它们为每个屏幕声明一个组件?这增加了所需的样板代码量,因此听起来不是很干净.

android dagger-2

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

在相机流 (GLSL) 上绘制文本或图像

我有一个基于grafika 示例的直播应用程序,我通过 RTMP 发送我的视频源以进行直播。

我现在想通过在我的视频流上覆盖文本或徽标来为我的视频添加水印。我知道这可以通过 GLSL 过滤来完成,但我不知道如何根据我链接的示例来实现这一点。

我尝试使用 Alpha 混合,但似乎这两种纹理格式在某种程度上不兼容(一种是 TEXTURE_EXTERNAL_OES,另一种是 TEXTURE_2D),而我只是得到一个黑框作为回报。

编辑:

我的代码基于Kickflip API:

class CameraSurfaceRenderer implements GLSurfaceView.Renderer {
    private static final String TAG = "CameraSurfaceRenderer";
    private static final boolean VERBOSE = false;

    private CameraEncoder mCameraEncoder;

    private FullFrameRect mFullScreenCamera;
    private FullFrameRect mFullScreenOverlay;     // For texture overlay

    private final float[] mSTMatrix = new float[16];
    private int mOverlayTextureId;
    private int mCameraTextureId;

    private boolean mRecordingEnabled;

    private int mFrameCount;

    // Keep track of selected filters + relevant state
    private boolean …
Run Code Online (Sandbox Code Playgroud)

android opengl-es glsl

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

与Room&LiveData的多对多关系

我有一个休息api,它返回一个地方列表,其中包含一个类别列表:

{
      "id": "35fds-45sdgk-fsd87",
      "name" : "My awesome place",
       "categories" : [
          {
            "id": "cat1",
            "name" : "Category 1"
          },
          {
            "id": "cat2",
            "name" : "Category 2"
          },
          {
            "id": "cat3",
            "name" : "Category 3"
          }
       ]
}
Run Code Online (Sandbox Code Playgroud)

因此,使用改造我从远程服务器获取这些模型类:

data class Category(var id: String, var name: String)

data class Place(
  var id: String,
  var name: String,
  var categories: List<Category>
)
Run Code Online (Sandbox Code Playgroud)

问题是 - 我希望viewModel始终从返回Flowables的本地Room数据库中检索,并且只触发将更新数据库以及视图的刷新操作.

DAO方法示例:

@Query("select * from Places where placeId = :id")
fun getPlace(id: String): Flowable<Place>
Run Code Online (Sandbox Code Playgroud)

所以我尝试像这样建模这两个类:

@Entity
data class …
Run Code Online (Sandbox Code Playgroud)

android retrofit rx-java2 android-room android-livedata

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

从谷歌地图获取我的地点列表

我正在尝试获取用户在 Google 地图上保存的地点列表。现在我知道没有用于此的 API(无论出于何种原因),但我在这里看到:

“我的地方”谷歌地图 API

显然曾经有一种获取 URL 的方法,但它似乎不适用于我的地点列表。

例如

https://www.google.com/maps/@46.889424,0.1194148,6z/data=!4m3!11m2!2s1KbZtik1IdXyNhwfXEb3P9vaZvzU!3e3

如果我附加 &output=kml 或 &output=json 似乎不起作用

我在谷歌地图上创建了这个列表,然后点击分享并获得了那个链接。

我什至尝试解析生成的 HTML,但似乎所有内容都由某个 Javascript 引擎处理,我在那里找不到任何对 Google Id 的引用——我什至不知道它们如何处理点击!

有什么帮助吗?有必须要以编程方式检索此信息的方式!

编辑:

我设法通过访问共享链接,然后处理 html 并存储window.APP_INITIALIZATION_STATE变量来获得一些工作。然后我将它转换为一个 javascript 数组并循环遍历它。在数组/地图结构的深处,我设法从该数组中获取了 google 名称和 google 位置 ID。这似乎有点奏效,但是当尝试使用超过 20 个项目的列表时,谷歌只获取前 20 个并等待用户“向下滚动”以获取下一个 20。这似乎触发了另一个调用以获取下一个20 个结果,看起来有点像:

https://www.google.com/search?tbm=map&fp=1&authuser=0&hl=en&gl=nl&pb=!4m8!1m3!1d54065472.4384380 ........

我可以看到原始功能 ID 包含在 url 的末尾,但不知道如何完整构建此 url 以获取接下来的 20 个项目....有什么想法吗?

google-maps

5
推荐指数
2
解决办法
1302
查看次数

注入带有活动参考的片段

DashboardActivity在 viewpager 中有一个包含两个片段 A 和 B的类。每个 Fragment 分别有自己的ViewModelAViewModelBViewModel

现在我正在创建一个Subcomponentfor DashboardActivity,它绑定了两个视图模型实例并通过 将它们注入到片段中ContributesAndroidFragment

我如何为每个 Fragment 创建一个子组件,以便NavigationController仍然可以满足需要活动(在这种情况下)的依赖项?即如何通过提供片段所附加的活动来创建此子组件?

考虑到这些片段可以添加到应用程序的其他地方,因此附加活动在运行时可能会有所不同。

这是我如何做到的:

应用组件:

@Singleton
@Component(
        modules = [
            ApplicationModule::class,
            AndroidSupportInjectionModule::class,
            NetModule::class,
            ...
            ActivityBindings::class
        ]
)
interface ApplicationComponent : AndroidInjector<MyApp> {

    @Component.Factory
    interface Factory {
        fun create(@BindsInstance application: Application): ApplicationComponent
    }
}
Run Code Online (Sandbox Code Playgroud)

活动绑定:

@Module
abstract class ActivityBindings {
    @ContributesAndroidInjector(modules = [DashboardModule::class])
    @PerActivity
    abstract fun dashboardModule(): DashboardActivity
    ...
}
Run Code Online (Sandbox Code Playgroud)

仪表板模块:

@Module(includes = [CommonActivityModule::class]) …
Run Code Online (Sandbox Code Playgroud)

android dagger dagger-2

5
推荐指数
0
解决办法
236
查看次数