使用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
我的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
在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
|
|-> 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) 我正在开发一个项目,从后端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) 自从安装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吗?感谢您提供的任何帮助.
我正在尝试使用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)
这就是问题出现的地方.在实现界面时,子屏幕打开,但是我无法找到回到第一个屏幕的方法.
按后退键可关闭应用程序.
有什么办法我可以在应用栏上放一个后箭头,这样按下它会把主屏幕拉回来吗?
我正在尝试使用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
下面的代码显示了添加片段的活动的一部分.
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
打开 VoiceOver 后,当焦点位于UIButton/ UITableViewCell/ 上时UICollectionViewCell,VoiceOver 会读取它的辅助功能标签一次。
然后,只要用户双击以选择UIButton/ UITableViewCell/ UICollectionViewCell,VoiceOver 除了在UIButton/ UITableViewCell/UICollectionViewCell选择上执行操作(导航等)外,还会再次读取相同的辅助功能标签。
我搜索了很多,但没能找到一种方法,停止/禁用VoiceOver会读无障碍的标签UIButton/ UITableViewCell/UICollectionViewCell选择。
任何帮助将不胜感激。