Articles of android activity

Android:多次使用setContentView坏时更改布局?

在更改布局时多次使用setContentView? 有人说这很糟糕,他们从来不说为什么。 有没有其他的事情来改变使用button的布局?

带有RemoteViews的Android通知 – 具有与RemoteViews布局相关的活动

我一直在研究如何使用RemoteView创build自定义布局通知。 到目前为止,我能够通过contentView和bigContentView创build一个通知,指向具有自定义布局xml的RemoteView 。 但是,什么也没有发生,就是当这个RemoteView被创build时,启动Activity (与自定义布局相关)。 我已经仔细检查,并在我的布局xml,它似乎有正确的Activity类名称: <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" android:paddingBottom="0dp" android:paddingLeft="0dp" android:paddingRight="0dp" android:paddingTop="0dp" tools:context=".LLMNotificationActivity" > ….. the rest are standard layout items: images, buttons and text </RelativeLayout> 在清单文件中,在主应用程序主要活动之后,还添加了通知活动: <activity android:name=".LLMNotificationActivity" android:label="@string/app_name"> <intent-filter> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 我希望当通知使用RemoteView作为其内容时,这个RemoteView将启动连接到其布局定义的活动。 但是它似乎没有。 这里是我如何在主应用程序Activity创build通知: protected void startNoti() { if( noti!=null ) return; Context context = getApplicationContext(); RemoteViews […]

OnPause()或onStop()是否即使电话由于电量不足而死机?

例如,如果我需要保留用户可以在我的应用程序中编辑的一些非常重要的数据,那么每当用户更改此类数据时是否需要保存它们,或者如果将它保存在onPause(),onStop() )或onDestroy()方法? 可以以某种方式结束没有任何这些方法调用? (例如电池耗尽时)

如何在Android中将我的活动显示为对话框?

我正在开发我的第一个Android应用程序,并试图对我的活动进行样式devise。 最终,我希望我的活动看起来像对话一样。 我已经在我的AndroidManifest.xml使用以下代码给出了我的所有活动的Theme.Dialog样式: <application android:icon="@drawable/group" android:label="@string/app_name" android:theme="@android:style/Theme.Dialog"> </application> 这给我的活动“浮动”的外观和对话的边界,但不是风格的标题。 该标题与普通对话框背景具有相同的颜色和外观,而不是“真正的”对话框中的“标题”背景和边界。 请注意,在这两个例子中,头文件在它下面都有一个很好的边框,而在第二个文件中,它有一个渐变背景。 有没有办法确保我的活动上的标题以某种方式inheritance了系统对话框标题,以便有效地复制我的活动的对话框的外观 – 除了Theme.Dialog样式的边框和“浮动”? 请注意,我不想将我的活动作为另一个对话框来调用,我只是希望它看起来像一个dilaog,即使它是根据我的清单的意图filter的意图加载的。 ADD:有没有办法让我的活动,当它在onCreate()旋转,调用一些方法,把自己变成一个实际的对话? 请记住,活动仍然需要能够响应系统的意图。

将单个xml布局用于具有不同数据的多个活动

我知道这是一个非常基本的问题,但作为一个新手,我无法去解决它。 所以,我想要有多个活动使用相同的XML布局(包括例如1个图像button和多个不同ID的文字查看)。 现在,对于每一个活动,我希望他们查看相同的布局,但用每个活动独有的数据覆盖视图。 做这个的最好方式是什么? 此外,图像button应在video播放器中打开不同的url(YouTube链接)。 有人可以告诉我什么是学习android编程最实用的方法吗? 更新这是我现在的代码: public class TemakiActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.contentviewer); } } 例如,我有一个ID为“descriptionviewer”的文本视图和一个ID为“videolink”的button,现在,您如何编码这些内容?

什么是非embedded式活动,为什么不在android:fitsSystemWindows中工作?

我试图在视图上使用android:fitsSystemWindows属性,以便它不会被我半透明的导航栏阻止,但它没有做任何事情。 其上的Android文档显示了fitsSystemWindows “只有当这个视图处于非embedded式活动时才会生效”。 什么是embedded式活动? 我会不小心创造一个? 是否有可能在一个合适的系统Windows的影响?

Android的setContentView操作

我已经读过,在activity的早期调用setContentView()是很重要的,因为它构build了可以被onCreate()中的后续代码操作的视图对象。 在生命周期方面,一旦setContentView()被调用,视图是否被绘制到屏幕上,或者是否允许onCreate()函数在视图对象中构build/填充信息,并等待实际绘制onCreate( )完成? 谢谢!

Android onConfigurationChanged()不在Activity中被调用

我意识到这个主题还有一些其他的post,但是这些post的解决scheme并不适合我。 基本上,我想停止我的活动重新启动设备方向更改。 为此,我修改了清单文件中的活动: <activity android:name=".MyActivity" android:configChanges="orientation|keyboardHidden"></activity> 我在我的活动中覆盖onConfigurationChanged() : @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); System.out.println("IN onConfigurationChanged()"); } 但是,方向更改后该活动仍然重新启动,并且onConfigurationChanged()方法未被调用。 有谁知道为什么这可能会发生?

与setContentView相对

在我的Activity子类的OnCreate方法我使用setContentView(XXX)来设置窗口布局。 在某些情况下,必须在“开始”时间停止该活动。 在OnStart中调用Activity.finish()方法实际上会停止执行,但是会在应用程序死亡之前立即显示我的布局,导致一个丑陋的闪烁效果。 问题是:是否有一个相反的setContentView? 我可以使用ipotetic clearContentView清空布局,避免闪烁? 在此先感谢L.

早期调用Android onActivityResult

我有2个活动,每个在不同的应用程序。 Activity1有一个button,用户可以点击它,并使用其onClick()方法中的意图调用第二个活动: Intent myIntent = getPackageManager().getLaunchIntentForPackage(com.myProject.Activity2); startActivityForResult(myIntent, 600); 这正确地从Activity1启动Activity2,但onCreate在Activity2中被调用之前在Activity1中被调用,而不是在onBackPressed()中设置返回意图。 这里是Activity2的onCreate方法: @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); } 以下是Activity2的当前版本的onBackPressed方法: @Override public void onBackPressed() { Intent intent = new Intent(); intent.putExtra("Stuff", someStuff); if(getParent()==null){ setResult(Activity.RESULT_OK, intent); }else{ getParent().setResult(Activity.RESULT_OK, intent); } finish(); super.onBackPressed(); } 我的AndroidManifest.xml对于Activity2具有以下意图filter: <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> 我validation了我的launchMode是standard (而不是singleTask等),正如这里所build议的那样,我的请求代码并不是负面的。 我也尝试了android:launchMode="singleTop" ,但那也是不行的。 我也试着不要在这里提到的Activity2中调用onBackPressed() finish() onBackPressed() […]