在我的Android应用中,如果用户是第一次启动该应用,我需要他们去SettingsActivity$GeneralPreferenceFragment
在PreferenceFragment
中选择一个国家/地区,然后启动该应用
我该怎么做?我尝试使用
Intent A = newIntent(getBaseContext(), SettingsActivity.GeneralPreferenceFragment.class);
startActivity(A);`
清单:
<activity android:name=".SettingsActivity$GeneralPreferenceFragment"/>
当我运行该应用程序时,它给我这个错误:
原因:java.lang.ClassCastException:com.myappname.app.SettingsActivity $ GeneralPreferenceFragment无法转换为android.app.Activity
答案 0 :(得分:1)
片段不是活动。您不能startActivity(Fragment)
。
如果您需要在“活动”中显示该片段,则需要使用一些代码和FragmentManager来显示它。
答案 1 :(得分:0)
从未正式鼓励或记录过在运行时在Android上更改语言的信息。资源框架会自动选择与设备最匹配的资源。对于一般的应用程序来说,这种行为就足够了,因此在继续进行操作之前,请确保您有严格的理由对其进行更改。
如果您有理由这样做,则无需使用活动,因为片段(或DialogFragment)足以完成此活动子任务。启动应用程序时,应该在后台隐藏默认的sharedPreference,并检索该语言的键,并且仅在此键值为空时才显示片段/日志;或使用从此值中检索到的特定语言直接启动应用。
如果您使用fragment / DialogFragment,则无需触摸manifest.xml文件或使用意图。