Articles of android activity

活动onNewIntent空指针exception

我在我的activity onCreate()中初始化我的列表,如下所示: private List<MyItem> filtered; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dashboard); filtered = new ArrayList<>(); // more things } 而当我尝试从onNewIntent使用过滤项目有时我得到一个空指针exception。 @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); filtered.clear(); } 怎么可能呢? 编辑:我的活动的launchmode是SingleTask 编辑2: 我不能发送更有用的日志,因为这个崩溃正在生产中。 只有我得到一些织物日志。 感谢您的帮助,但我不能粘贴整个代码的隐私原因。 我觉得我有SingleTask-OnCreate-OnNewIntent用法上的问题。 只是我试图打开我的应用程序从通知与参数决定哪些片段将被打开时,用户导航到活动。 你有任何关于这个包含SingleTask-OnCreate-OnNewIntent实现的例子吗? 感谢所有的帮助。

intent startActivity奇怪的问题,导致我的扫描仪无法正常工作

所以,我完成我的扫描仪活动后 btn_take_photo.setOnClickListener(new FloatingActionButton.OnClickListener() { @Override public void onClick(View view) { String carde = cardnumberbox.getText().toString().trim(); if (carde.matches("")) { Toast.makeText(getApplicationContext(), getString(R.string.Skan_Udfyld_Kort_Nummer), Toast.LENGTH_SHORT).show(); cardnumberbox.requestFocus(); return; } Intent i = new Intent(ScanActivity.this, CameraActivity.class); i.putExtra("EXTRA_SESSION_ID", carde); startActivity(i); } }); 去我的摄像头活动,所以我可以拍一些照片,然后回去 public void btn_aprove2(View view) { Intent i = new Intent(CameraActivity.this, ScanActivity.class); String counts = count.getText().toString().trim(); i.putExtra("EXTRA_SESSION_IDs", counts); String carde = […]

ActivityInstrumentationTestCase2的Androidunit testing,getActivity()在先前的testing用例导致另一个Activity启动时挂起

我正在尝试使用ActivityInstrumentationTestCase2为loginActivity运行多个testing用例。 第一个testing用例testinglogin成功,这导致Activity通过调用startActivity(Intent intent)来启动下一个Activity。 现在,我正在尝试testing的Activity上还有另一个Activity。 第一个testing用例通过,第二个testing用例开始。 但是,当它被第二个testing用例调用时,它将永远挂在getActivity()上。 如果我进入我的loginActivity的代码,并注释掉调用startActivity(Intent intent)的部分,那么这两个testing用例都会成功运行。 我已经尝试了一些东西。 我使用Intent.FLAG_ACTIVITY_CLEAR_TOP来清除活动堆栈。 在这种情况下,顶级活动被closures,并且loginActivity被显示,但是当第二个testing用例开始时它仍然卡在getActivity()中。 我也尝试发送键(KeyEvent.KEYCODE_BACK),但是没有效果。 我能做些什么来克服呢? 谢谢!

最快的方法来创build一个模拟活动进行testing

我现在正在unit testing一个库。 在某些类中,我需要在某些静态方法中传递一个活动作为参数。 图书馆本身不包含任何活动。 我需要以某种方式获得一个模拟活动的实例,以在每个单独的方法testing中使用。 我已经阅读了Activity Testing Tutorial和Testing Fundamentals部分。 如果您要testing项目中已经存在的活动,那么大部分所说的内容都是有意义的。 但是我只需要一个模拟的工具就可以在Ui线程中显示对话框并运行简短的任务。 最快,最简单的方法来实现这一点? 我应该在testing项目中创build模拟活动,还为虚拟用户界面提供xml布局资源吗? UPDATE 由于我没有find任何自动创build模拟活动的方法,我决定自己提供。 我在testing项目里面创build了一个虚拟活动,它通过xml提供了一个虚拟的布局。 然后我编码我的testing扩展ActivityInstrumentationTestCase2 : public class LibraryTest extends ActivityInstrumentationTestCase2<MockActivity> { public LibraryTest(String name) { super(MockActivity.class); } protected void setUp() throws Exception { super.setUp(); } public void testAMethodFromLibrary() { fail("Not yet implemented"); } } 其中MockActivity是我在这个testing项目中创build的上述模拟活动。 但是,似乎Androidtesting框架在启动活动时遇到了麻烦,并且出现了这个exception: java.lang.RuntimeException: Exception during suite construction at […]

是在布局包含视图的活动被重新创build时恢复的视图的“标记”?

有关Activity娱乐状态的文档 : 默认情况下,系统使用Bundle实例状态来保存活动布局中每个View对象的信息(如input到EditText对象中的文本值)。 所以,如果您的活动实例被销毁并重新创build,那么布局的状态将恢复到之前的状态,不需要代码。 View.setTag(Object)状态的文档 : 设置与此视图关联的标签。 标签可以用来在其层次结构中标记视图,而不必在层次结构中是唯一的。 标签也可以用来在一个视图内存储数据而不需要借助另一个数据结构。 我的问题是:如果我在一个视图(具有唯一的ID)在我的活动的布局设置标签,然后该活动被系统销毁,随后重新创build,将重新创build时,该视图自动标记我最初设定的对象?

创build无身体活动

目前我正在尝试做一个可以在屏幕上移动的活动,换句话说,这个活动可以浮在屏幕上。 我知道我缺less一些应该添加到实现此function。 我应该做些什么来实现可以在屏幕上的任何位置移动的浮动活动?

在对话框中使用Immersive模式时,nav。 酒吧重新出现,并调整我的布局

当我的应用在Android 4.4+上运行时,我正在使用Immersive Mode。 ( http://developer.android.com/training/system-ui/immersive.html ) 我的活动确实全屏显示,我使用setOnSystemUiVisibilityChangeListener解决了音量键的setOnSystemUiVisibilityChangeListener 。 我也有类似的代码,把对话沉浸模式。 但是,当显示一个对话框时,导航。 酒吧跳到屏幕上,然后立即撤退。 当对话被解散时,情况更糟 – 导航。 酒吧跳转和调整后面的活动。 以下是我支持沉浸式模式的课程。 它只是在每个Activity的onResume上调用,而且在构build每个对话框时还会调用一个单独的函数。 我是否错过任何标志或callback,还是已知的Android问题? public class ImmersiveModeHelper { public ImmersiveModeHelper(Activity activity) { mActivity = activity; } @SuppressLint("NewApi") public void supportFullScreenImmersiveMode() { MyLog.d("ImmersiveModeHelper: supportFullScreenImmersiveMode: "); // Support full-screen immersive mode on Android 4.4 and up if (Build.VERSION.SDK_INT >= 19) { // Get […]

Android 4.4.X:taskAffinity&launchmode与Activity生命周期

我开发了一个简单的应用程序,它在我注意到的Android 4.4.X设备上展示了一些奇怪的行为。 比方说,我想要有2个“主要”的活动,其中第一次说“你好”(通过启动“HelloActivity”)每隔一秒恢复,第二个有android:launchMode="singleTask" android:taskAffinity=".MyAffinity"定义。 第二个是从第一个开始的。 我的代码 清单非常简单: <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="14" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.affinitylaunchmodebugtest.MainActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:windowSoftInputMode="adjustResize"> <intent-filter> <category android:name="android.intent.category.DEFAULT" /> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:label="HELLO" android:name="com.example.affinitylaunchmodebugtest.HelloActivity" android:configChanges="keyboardHidden|orientation|screenSize"> </activity> <activity android:label="AffinityTestActivity" android:name="com.example.affinitylaunchmodebugtest.AffinityTestActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:launchMode="singleTask" android:taskAffinity=".MyAffinity"> </activity> </application> MainActivity在点击button时启动AffinityTestActivity并logging其生命周期。 每隔第二次恢复时,它也会启动HelloActivity: public class MainActivity extends Activity { @Override protected […]

如何configuration警报对话的标题

我正在尝试更改标题“input详细信息”的文本颜色和字体,您可以在下面的快照中看到,但无法生成。 请帮我解决这个问题。 码:- public class MainActivity extends Activity { Button cust; Dialog custom; EditText Fname; EditText Lname; TextView txt; Button savebtn; Button canbtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); cust = (Button)findViewById(R.id.cusdia); txt = (TextView)findViewById(R.id.txt); cust.setOnClickListener(new View.OnClickListener() { String fname,lname; @Override public void onClick(View view) { // TODO Auto-generated method stub custom = […]

dynamic添加Opengl形状

我正在按照这个教程来添加Opengl到我的Android应用程序。 https://www3.ntu.edu.sg/home/ehchua/programming/android/Android_3D.html 。 在所有的例子中,形状都是在MyGLRenderer构造函数中创build的,但是我想知道如何在Renderer创build后dynamic地添加Opengl形状。 如何才能做到这一点?