小编Jen*_*sen的帖子

排球请求中的UTF-8编码

在我的Android应用程序中,我正在使用Volley加载json数据JsonArrayRequest.数据是由我自己创建的,我用Sublime用UTF-8编码保存它们.当我得到Response并填充我的时ListView,文本显示不正确(变音符号).这是我的请求的样子:

JsonArrayRequest request = new JsonArrayRequest(targetUrl,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(final JSONArray response) {
                        try {
                            fillList(response);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        });
        requestQueue.add(request);
Run Code Online (Sandbox Code Playgroud)

当我使用此方法加载完全相同的数据时,所有文本都正确显示:

final StringBuilder builder = new StringBuilder();
        final HttpClient client = new DefaultHttpClient();
        final HttpGet httpGet = new HttpGet(request);
        try {
            final HttpResponse response = client.execute(httpGet);
            final StatusLine statusLine = response.getStatusLine();
            int statusCode = …
Run Code Online (Sandbox Code Playgroud)

encoding android utf-8 android-volley

11
推荐指数
4
解决办法
2万
查看次数

使用 YouTubePlayerFragment 的问题,“YouTubePlayerView 宽 0dp,高 0dp”

我真的很难YouTubePlayerFragment在我的应用程序中使用 。我的实现是这样的:

private void loadYouTubeVideo(final YouTubeViewHolder h, final Content content) {
        final YouTubePlayerFragment youTubePlayerFragment = YouTubePlayerFragment.newInstance();
        FragmentTransaction transaction = ((DetailActivity) getContext()).getFragmentManager().beginTransaction();
        transaction.add(R.id.fl_youtube, youTubePlayerFragment).commit();
        final ViewTreeObserver observer = h.mRlYouTube.getViewTreeObserver();
        observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                youTubePlayerFragment.initialize(YOUTUBE_PLAYER_API_KEY, new YouTubePlayer.OnInitializedListener() {
                    @Override
                    public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean wasRestored) {
                        if(!wasRestored) {
                            youTubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);
                            youTubePlayer.loadVideo(content.getVideoId());
                        }
                    }

                    @Override
                    public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
                        Log.e(getClass().getSimpleName(), "Error initializing YouTube Video with id ");
                        FragmentTransaction transaction = ((DetailActivity) getContext()).getFragmentManager().beginTransaction();
                        transaction.remove(youTubePlayerFragment); …
Run Code Online (Sandbox Code Playgroud)

android android-youtube-api

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

无法使 Firebase 适用于非 Gradle 构建:缺少 google_app_id。Firebase 分析已禁用

我正在开发的应用程序有一个非常定制的构建过程。无法使用 gradle 构建我的应用程序。这并不理想,但我无法改变任何事情。尽管如此,我想在我的应用程序中使用 Firebase Analytics。其中包括模块 firebase-core、firebase-common、firebase-analytics、firebase-analytics-impl、firebase-iid、firebase-iid-interop、firebase-measurement-connector、firebase-measurement-connector-imple、play-services-测量基础和播放服务测量 API。我还在我的 中添加了以下字符串,其中包含我在Firebase 项目strings.xml中找到的值:google-services.json

<string name="google_app_id" translatable="false">xxx</string>
<string name="gcm_defaultSenderId" translatable="false">xxx</string>
<string name="default_web_client_id" translatable="false">xxx</string>
<string name="firebase_database_url" translatable="false">xxx</string>
<string name="google_api_key" translatable="false">xxx</string>
<string name="google_crash_reporting_api_key" translatable="false">xxx</string>
<string name="project_id" translatable="false">xxx</string>
Run Code Online (Sandbox Code Playgroud)

(如此处所述FirebaseInitProvider从 AndroidManifest.xml 中删除了 。在我的应用程序Application课上onCreate(),我这样做:

FirebaseOptions.Builder builder = new FirebaseOptions.Builder()
            .setApplicationId(getString(R.string.google_app_id))
            .setApiKey(getString(R.string.google_api_key));
FirebaseApp.initializeApp(this, builder.build(), "[DEFAULT]");
Run Code Online (Sandbox Code Playgroud)

到目前为止没有问题。执行上述代码时,我收到一条调试日志消息:

FirebaseApp: com.google.firebase.auth.FirebaseAuth is not linked. Skipping initialization.
Run Code Online (Sandbox Code Playgroud)

一切都好,我没有包含 auth 模块。我的应用程序不需要它。当我调用FirebaseAnalytics.getInstance(adblockSettingsTextView.getContext()).getFirebaseInstanceId()它时,它返回一个字符串值,所以我假设初始化成功。

现在每次我想记录这样的事件

Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "Dashboard");
FirebaseAnalytics.getInstance(this).logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
Run Code Online (Sandbox Code Playgroud)

我在日志中看到一条错误,Missing …

android initialization firebase firebase-analytics

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

ActivityManagerCompat.isLowRamDevice没用,总是返回false

我想isLowRamDevice为我的应用程序使用帮助方法,它可以流式传输视频.当我支持设备关闭API级别15时,我不得不使用ActivityManagerCompat.isLowRamDevice().我真的很困惑,它总是返回假,即使我使用非常旧的设备.然后我检查了方法本身并看到了这个:

    public static boolean isLowRamDevice(@NonNull ActivityManager am) {
        if (Build.VERSION.SDK_INT >= 19) {
            return ActivityManagerCompatKitKat.isLowRamDevice(am);
        }
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

所以难怪它总是在我的Android 4.0.4设备上返回false.但对我来说,这绝对没有意义.或者我错过了什么?

android activity-manager

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

没有Scrollbar的ListView可以在ScrollView中使用

我想用一种ListView里面的东西ScrollView.该列表具有可变长度,始终可以添加/删除项目.是否有一种简单的方法来修改默认值Android ListView,我是否必须创建自定义ListView

android listview scroll

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