Articles of android activity

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)一个项目,并在完成活动之前?

如何从活动传递到活动?

我有一个主要的活动,它召唤另一个活动来显示一些数据。 我有一个私人数据库帮助对象,我使用整个主要活动代码。 有没有办法将我的主要活动的上下文以优雅的方式传递给我的子活动? (即从子类,像getCallingActivityContext() ) 我总是可以创build新的数据库帮助对象。

如何知道活动已经完成?

我想查看一个活动是否正在运行或完成。 有什么方法可以检查活动状态吗? 我发现activity.isFinishing()但我不确定。

结果开始检测活动

我有一个活动假设“活动A”,我从两个方面开始 a) StartActivity() b) StartActivityForResult() 现在我已经有几种方法对于活动开始的方式有着不同的行为。 现在我想要检测到“活动A”是为了结果而开始的。 所以我的问题,我们如何可以检测到活动开始的结果? 我不想通过意图发送数据。 任何其他方式更广义? 谢谢。