Articles of android activity

Android:手动屏幕方向而不重新启动活动?

我需要制作一个应用程序在video上播放全屏的button。 该button用于在video显示的横向和纵向之间手动切换。 我们不希望自动旋转检测。 所以Manifest文件设置如下。 <activity android:name=".VideoActivity" android:screenOrientation="portrait" android:configChanges="keyboardHidden"/> 我用了 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); 或者setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT); 手动设置方向。 它的工作,但重新开始活动 – findonCreate()被调用。 所以video播放从一开始意外地重新开始。 我不能像使用onConfigurationChanged() – 自动旋转检测方法那样平滑。 那么如何在不重新启动活动的情况下手动改变屏幕方向呢? 谢谢。

Android的 – 如何“开始”或“初始化”一个活动的片段?

我有一个名为DummyFragment的类,它扩展了Fragment 。 public class DummyFragment extends Fragment { public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setRetainInstance(true); Log.i("myapp","test"); } } 现在,在我的父母活动中,我想要“运行”这个片段。 这是我的FirstActivity.java : public class FirstActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_first); // How do I run/start my fragment? I want it's onCreate method to fire Fragment fraggy = new […]

与活动和儿童片段的导航抽屉

我有一个活动 A ,一个ListFragment P和2个片段 Q和R 当应用程序启动时, A被创build,加载P 基于用户点击的是Q或R 现在通过参考本教程,我实现了一个导航抽屉 ,它向用户显示某些项目。 但是,由于我已经在活动中实现了导航抽屉,因此它显示了所有碎片。 我希望它只对P 。 (非常类似于谷歌Gmail应用程序当用户在主屏幕上 – 抽屉是存在的。当用户点击打开电子邮件,抽屉变成后退button) 我不知道如何翻译上面的代码。 任何帮助表示赞赏。

appcompat-v7:自定义视图在ActionBar中没有正确alignment

我正在尝试使用基于Appcompat工具栏的actionBar 这是我的toolbar.xml <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="bottom" android:paddingBottom="0dp" android:background="?attr/colorPrimaryDark"> </android.support.v7.widget.Toolbar> 我包括在我的activity.xml文件。 然后在我的Activity的OnCreate方法中,我将自定义PagerStrip设置为ActionBar ActionBar actionBar = getSupportActionBar(); actionBar.setCustomView(R.layout.pager_strip); actionBar.setDisplayShowCustomEnabled(true); tabs = (PagerSlidingTabStrip) actionBar.getCustomView().findViewById(R.id.tabs_strip); tabs.setViewPager(mPager); 在ActionBar的PagerStrip下面有一些填充。 我想删除这个填充。 这里是一个图片显示的问题。 这与ActionBarSherlock工作正常

使用不同上下文的SharedPreferences

我想在多个活动之间使用SharedPreferences,我的想法是有一个类访问SharedPreferences并通过静态方法将其返回给不同的活动。 我的问题是:因为SharedPreferences需要一个上下文来初始化,我会从不同的活动给它不同的上下文将值仍然可以访问? 所有帮助表示赞赏!

从代码显示标题栏

在清单文件中,我有这行到我的应用程序标记 android:theme="@android:style/Theme.NoTitleBar" 基本上每个活动都没有标题栏,但是对于我想要显示标题栏的活动之一 我知道隐藏栏可以使用这个代码 this.requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 我怎样才能从代码显示标题栏? 编辑请不要高我如何隐藏标题栏:),我知道,如果有人知道我怎么能显示它? 我知道我可以把NoTitleBar放在我想要隐藏的每一个活动中,我可以把它留给我想要显示的那个…但是那不是我的观点

活动暂停时可以更新视图吗?

在活动暂停期间,我是否可以更新界面/视图(如更改文本浏览文本),例如,因为另一个活动已经启动? 我已经实现了一个小testing应用程序,通过将事件与事件总线连接来完成这样的事情。 活动A有一个TextView。 活动A将自身注册到onCreate()中的EventBus,并在onDestroy()中注销自身。 活动A启动活动B.活动B进行一些更改并触发ChangedEvent。 这个ChangedEvent将被活动A接收,因为即使活动A被暂停,它仍然被注册,并且将更新活动A的TextView(改变文本)。 一切工作正常。 我已经在各种Android版本(2.3.3至4.3)上的各种nexus设备和仿真器上进行了testing。 没有例外或意外的行为。 那么可以安全地说,我可以用一个活动来构build一个应用程序,在活动暂停时更新他的视图? 这取决于制造商等吗? 我只能在股票的Android设备上testing我的示例应用程序。

Android的 – 没有发现活动处理意图{动作= android.intent.action.VIEW – 试图打开PDF文件

我search了很多,find一个解决scheme,但仍然找不到任何 我想在我的android应用程序中打开一个PDF文件 这是我的代码来做到这一点: try { File file = new File(Environment.getExternalStorageDirectory()+"/pdf/Read.pdf"); Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri uri = Uri.fromFile(file); Log.d("CheckingURI", uri.toString()); intent.setDataAndType(uri, "application/pdf"); startActivity(intent); } catch (Exception e) { Log.d("OpenPDFError", e.getMessage()); } Tomcat日志意味着没有活动来处理意图 09-19 19:55:02.938: D/CheckingURI(30483): file:///mnt/sdcard/pdf/Read.pdf 09-19 19:55:02.948: D/OpenPDFError(30483): No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///mnt/sdcard/pdf/Read.pdf typ=application/pdf } 有没有其他的方式来做到这一点,或者我可以打开PDF文件与另一个默认的PDF查看器? 如果是的话,怎么样? 更新:主要的问题是,我没有在我的模拟器上安装PDF查看器应用程序…

我们如何控制Android同步适配器偏好?

在试图写一个自定义的Android同步适配器我跟着这个 。 在上述示例中,我成功地在“ 常规”设置中显示了一个条目(“帐户设置”),其中包含以下代码段。 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="General Settings" /> <PreferenceScreen android:key="account_settings" android:title="Account Settings" android:summary="Sync frequency, notifications, etc."> <intent android:action="fm.last.android.activity.Preferences.ACCOUNT_SETUP" android:targetPackage="fm.last.android" android:targetClass="fm.last.android.activity.Preferences" /> </PreferenceScreen> </PreferenceCategory> </PreferenceScreen> 代码导致我在常规设置中input( 帐户设置 ): 点击帐户设置后,我收到如下错误信息,设备不必要的重启。 ERROR / AndroidRuntime(30057):android.util.AndroidRuntimeException:从Activity上下文外部调用startActivity()需要FLAG_ACTIVITY_NEW_TASK标志。 这真的是你想要的吗? 我知道这个错误可以通过代码来解决。 由于“帐户设置”首选项是基于XML的代码,我坚持与错误。 任何人都可以帮助解决这个问题? 我们如何通过代码来控制这种偏好?

我是否需要显式地将结果设置为RESULT_CANCELED?

我有一个活动,期望用户select一个项目,但用户可以select而不是select一个项目后点击后退button。 这个“项目select”活动是从startActivityForResult()开始的。 我想知道两件事情。 首先,当项目被选中时,只有setResult(RESULT_OK)就足够了,也就是说,如果我没有明确地设置,我能依靠结果不被设置为RESULT_OK吗? 其次,如果这还不足以依赖(未初始化的)结果,可以多次调用setResult(),第一次将结果“初始化”为RESULT_CANCELED,然后在用户select之后调用SetResult(RESULT_OK)一个项目,并在完成活动之前?