小编mad*_*mad的帖子

PreferenceFragmentCompat需要设置preferenceTheme

使用v7首选项支持库中的新PreferenceFragmentCompat:http://developer.android.com/tools/support-library/features.html#v7-preference,我收到此错误

E  java.lang.IllegalStateException: Must specify preferenceTheme in theme
E      at android.support.v7.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:202)
Run Code Online (Sandbox Code Playgroud)

应该设置什么主题?

更新:我尝试过使用

<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>

正如@Bogato所建议的那样,它看起来并不正确,即使在Lollipop上也看起来非常Holo.

支持库:

在此输入图像描述

原生偏好:

在此输入图像描述

android android-fragments android-support-library preferencefragment preference-v7

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

内部PreferenceScreen无法使用PreferenceFragmentCompat打开

我的PreferenceFragmentCompat的内部PreferenceScreen没有显示,或者似乎忽略了点击事件.

我创造了MyPreferenceFragment那个extends PreferenceFragmentCompat

public class MyPreferenceFragment extends PreferenceFragmentCompat {
 @Override
  public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
    addPreferencesFromResource(R.xml.preferences);
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,我改变了我的主题,在styles.xml

<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
  <item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
</style>
Run Code Online (Sandbox Code Playgroud)

最后创建我的preferences.xml文件

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <CheckBoxPreference android:title="Check Me"/>
    <PreferenceScreen android:title="My Screen"> <!-- This is not opening -->
        <EditTextPreference android:title="Edit text" />
    </PreferenceScreen>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

build.gradle我添加了两个:

compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:preference-v7:23.0.1'
Run Code Online (Sandbox Code Playgroud)

活动的代码

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
Run Code Online (Sandbox Code Playgroud)

activity_main.xml中 …

android android-appcompat android-support-library preference-v7

23
推荐指数
3
解决办法
8354
查看次数

E/libEGL:validate_display:99错误3008(EGL_BAD_DISPLAY)android os 7.1牛轧糖

在Android OS 7.1 Nougat上运行我的应用程序时出现以下错误.

E/libEGL:validate_display:99错误3008(EGL_BAD_DISPLAY)[04-21 10:19:18.788 4410:4622 D /]
HostConnection :: get()建立新主机连接0x7db835ad6200,tid 4622

以前有人遇到过这个问题吗?

导致此错误的原因是什么?

这是什么解决方案?

android android-7.1-nougat

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

更改ndk-build输出位置

我的应用程序具有以下结构

Android
|
|-> app
|    |
|    |-> build [1]
|    |-> src
|    |    |-> main
|    |    |     |-> assets
|    |    |     |-> java
|    |    |     |-> jni 
|    |    |     |     |-> Android.mk
|    |    |     |     |-> Application.mk
|    |    |     |
|    |    |     |-> jniLibs
|    |    |     |      |-> armeabi
|    |    |     |      |-> armeabi-v7a
|    |    |     |
|    |    |     |-> res
|    |    |     |-> AndroidManifest.xml …
Run Code Online (Sandbox Code Playgroud)

android android-gradle-plugin ndk-build

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

如何从GMT TimeZone到IST TimeZone和Vice Versa在android中解析日期

我正在开发一个项目,从后端IST(印度标准时间)获取日期/时间,如图所示"2013-01-09T19:32:49.103+05:30".但是当我使用以下DateFormat解析它时

DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Run Code Online (Sandbox Code Playgroud)

然后解析..

Date date = sdf.parse("2013-01-09T19:32:49.103+05:30");


System.out.println("XYZ ==============>"+date);
Run Code Online (Sandbox Code Playgroud)

以GMT格式显示日期作为输出即

Wed Jan 09 14:02:49 GMT+00:00 2013.
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用TimeZone类作为..

TimeZone timeZone=TimeZone.getTimeZone("IST");
sdf.setTimeZone(timeZone);
Run Code Online (Sandbox Code Playgroud)

但没有效果..

我怎么能得到一个Date具有日期IST格式而不是GMT 的类对象...

请提供适当的解决方案..

编辑:

这是代码的样子:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");

TimeZone timeZone=TimeZone.getTimeZone("IST");
sdf.setTimeZone(timeZone);

Date date = sdf.parse("2013-01-09T19:32:49.103+05:30");
String formattedDate=sdf.format(date);

System.out.println("XYZ ==============>"+formattedDate);
Run Code Online (Sandbox Code Playgroud)

java timezone android date simpledateformat

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

Android Studio:"Gradle sync失败:无法从选定的JDK运行JVM."

自从安装Android Studio 3.2以来,我一直无法运行Java,我尝试过jdk-8u181-windows-x64,jdk-10.0.2_windows-x64_bin,jdk-11_windows-x64_bin,设置PATH并重新安装无数次,结果是一样的 - 没有"java"出现,错误信息是: -

Gradle sync失败:无法从选定的JDK运行JVM.请确保JDK安装有效且与当前操作系统兼容(Windows 8.1 6.3,amd64).如果您使用的是嵌入式JDK,请确保下载与当前操作系统兼容的Android Studio软件包.例如,对于x86系统,请选择32位下载选项.(369毫秒)

注意:我曾经能够打开java文件夹但是在玩了太多之后,出了点问题,所以,我决定重新开始......从那以后我就死了.

Studio 3.2有缺陷吗?根本不兼容Java?或者我错过了什么?我可以测试一个较旧的Android Studio吗?感谢您提供的任何帮助.

java android android-gradle-plugin

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

如何从PreferenceFragmentCompat中的Preferences子屏幕移回主屏幕?

我正在尝试使用PreferenceFragmentCompat实现"设置"屏幕.我的偏好xml有一个像这样的首选子屏幕:

的preferences.xml

    <CheckBoxPreference
        android:defaultValue="false"
        android:key="@string/pref_sound_key"
        android:summary="@string/pref_sound_summary"
        android:title="@string/pref_sound_title" />

    <PreferenceScreen android:title="Inner Screen">
        <CheckBoxPreference
            android:defaultValue="true"
            android:key="@string/key_1"
            android:title="@string/title_1" />

        <CheckBoxPreference
            android:defaultValue="true"
            android:key="@string/key_1"
            android:title="@string/title_1" />

        <CheckBoxPreference
            android:defaultValue="true"
            android:key="@string/key_2"
            android:title="@string/title_2" />

        <CheckBoxPreference
            android:defaultValue="true"
            android:key="@string/key_3"
            android:title="@string/title_3" />
    </PreferenceScreen>

</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

首选主屏幕

现在,在应用程序中,子屏幕在我在父活动中实现PreferenceFragmentCompat.OnPreferenceStartScreenCallback接口之前不会打开,如PreferenceFragmentCompat doc中所指定的那样.

MainActivity.java

public boolean onPreferenceStartScreen(PreferenceFragmentCompat preferenceFragmentCompat,
 PreferenceScreen preferenceScreen) {    
    preferenceFragmentCompat.setPreferenceScreen(preferenceScreen);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

这就是问题出现的地方.在实现界面时,子屏幕打开,但是我无法找到回到第一个屏幕的方法.

偏好子屏幕

按后退键可关闭应用程序.

有什么办法我可以在应用栏上放一个后箭头,这样按下它会把主屏幕拉回来吗?

android preference-v7

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

FragmentPagerAdapter的问题

我正在尝试使用viewpager和片段制作幻灯片,这样我就可以为每个片段加载不同的布局,并为每个页面提供不同的功能.

我按照教程来完成这个.

我在悬停时遇到的错误public Fragment getItem(int arg0):返回类型与之不兼容FragmentPagerAdapter.getItem(int)

和错误#2:构造函数FragmentPagerAdapter(FragmentManager)未定义 - >在悬停时获取此构造函数super(fm);

package com.example.spui;

import android.os.Bundle;
import android.app.Fragment;
import android.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class MyFragmentPagerAdapter extends FragmentPagerAdapter{

    final int PAGE_COUNT = 5;

    /** Constructor of the class */
    public MyFragmentPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    /** This method will be invoked when a page is requested to create */
    @Override
    public Fragment getItem(int arg0) {

        MyFragment myFragment = new MyFragment();
        Bundle data = new Bundle();
        data.putInt("current_page", …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager fragmentpageradapter android-pageradapter

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

Fragment的oncreateView()中的NullPointerException

下面的代码显示了添加片段的活动的一部分.


    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.replace(R.id.fragment_container, srkt_frag);
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
    ft.commit();

    TabSpec specs1=mTab.newTabSpec("tag1");
    specs1.setContent(R.id.fragment_container);
    specs1.setIndicator("SRK/T");
    mTab.addTab(specs1);
Run Code Online (Sandbox Code Playgroud)

mTab是TabHost,其中srkt_frag显示为内容.片段类如下所示


public class Srkt_x extends Fragment 
{
    @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            View view=inflater.inflate(R.layout.activity_srkt_x,container,false);
            TextView text = (TextView) getView().findViewById(R.id.srkt_power);
            Float result=getArguments().getFloat("RESULT");
            text.setText(String.valueOf(result));
            return view;

        }

}
Run Code Online (Sandbox Code Playgroud)

执行项目后,我在第21行得到nullpointerexception,即at

TextView text = (TextView) getView().findViewById(R.id.srkt_power);
Run Code Online (Sandbox Code Playgroud)

我的xml文件如下所示


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"

tools:context=".Srkt_x" >

<ScrollView
    android:id="@+id/srkt_scrollView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:background="@color/Black" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="433dp" >

        <TextView
            android:id="@+id/srkt_power" …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception android-tabhost android-fragments

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

在 UIButton/UITableViewCell/UICollectionViewCell 选择上禁用 VoiceOver

打开 VoiceOver 后,当焦点位于UIButton/ UITableViewCell/ 上时UICollectionViewCell,VoiceOver 会读取它的辅助功能标签一次。

然后,只要用户双击以选择UIButton/ UITableViewCell/ UICollectionViewCell,VoiceOver 除了在UIButton/ UITableViewCell/UICollectionViewCell选择上执行操作(导航等)外,还会再次读取相同的辅助功能标签。

我搜索了很多,但没能找到一种方法,停止/禁用VoiceOver会读无障碍的标签UIButton/ UITableViewCell/UICollectionViewCell选择。

任何帮助将不胜感激。

accessibility ios voiceover

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