Articles of android intent

Android – ListView – 按需调用getView()

我有一个ListView ,它在每一行显示从互联网上提取的图像和一个字符串。 一般来说它工作正常。 但是我希望控制视图(行)膨胀的方式。 默认情况下,当行可见时,将调用适配器的getView()方法。 这当然不是最好的行为之一,因为如果我有一个包含数百条记录的ListView ,并且我需要到达底部的那些,在滚动ListView ,将为每一行调用getView()方法,直到我到了页脚。 所以我想在滚动之后调用getView并且ListView处于暂停/空闲状态,但我不知道如何解决这个问题: 这是我开始的方式: listView.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { if(scrollState==SCROLL_STATE_IDLE){ // Invoke get view only on visible items } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { } }); 这是我的适配器的getView: @Override public View getView(int position, View convertView, ViewGroup […]

Flag Activity Clear Top会破坏目标活动而不是创建目标活动

我正在观看Intent.FLAG_ACTIVITY_CLEAR_TOP的行为。 例如,我有三个活动A,B和C现在Flow是A – > B – > C. 现在,当我使用此标志从C开始A时,使用以下代码。 Intent intent_to_a=new Intent(C.this,A.class); intent_to_home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent_to_a); AFAIK,Intent.FLAG_ACTIVITY_CLEAR_TOP应该删除B并且应该恢复A。它也会以相同但奇怪的方式执行。 它删除B,而不是删除A而不是创建A.还调用了A的onDestroy方法。 任何人都可以告诉我它是否合适? 如果我不想让它毁灭我该怎么办?

Android google.navigation意图模式?

我目前正在开发一个将启动导航意图的应用程序。 我知道这不是一个官方的API,但它完全按我想要的方式工作。 我允许用户选择驾驶,步行和公交导航到一个位置。 直接启动到Google地图导航的意图如下所示: google.navigation:ll= +纬度和经度,然后+ &mode=那么你的运输方式。 例如,要使用步行路线导航到某个区域: google.navigation:ll=blah,blah&mode=w 驾驶是默认的,或者&mode=d ,骑自行车是&mode=b ,但我无法弄清楚公共汽车(公共交通)。 有没有人这样做过? 谢谢! 编辑:到目前为止,我发现mode=public给出自行车方向, mode=transit给驾驶,令人沮丧, mode=bus也返回自行车方向。 更多: mode=train也给驾驶… GOT是一种方法来做到这一点…… 另一个编辑:我刚才意识到我很确定它不存在,因为在试验条款后我意识到我应该通过总线搜索启动谷歌地图意图,但有谁知道如何做到这一点?

Android:无法为SharedPreferences文件创建目录

我正在尝试通过另一个应用程序编辑一个应用程序的SharedPreferences ,我的代码是这样的 try { Context plutoContext = getApplicationContext().createPackageContext(“me.test”,Context.MODE_WORLD_WRITEABLE); SharedPreferences plutoPreferences = PreferenceManager.getDefaultSharedPreferences(plutoContext); Editor plutoPrefEditor = plutoPreferences.edit(); plutoPrefEditor.putString(“country”, “India”); plutoPrefEditor.commit(); } 我收到了一个错误 E/SharedPreferencesImpl( 304): Couldn’t create directory for SharedPreferences file /data/data/me.test/shared_prefs/me.test_preferences.xml 其中me.test是我在me.test proj中的另一个项目我可以毫不费力地编辑和检索SharedPreferences 我在Nexus S android 4.0.4(三星)上测试它,任何人都可以帮助我

未安装Google +时,应用程序强制关闭

我的要求是在社交网站上分享。 所以,我已经完成了Facebook和Twitter。 但我被Google+困住了。 我在Google+上分享了以下代码,但应用程序在我开始活动时forcecloses关闭。 仅当Google+ app尚未安装在设备上时才会出现这种情况。 我知道此分享意图要求已安装Google+才能启动此活动。 现在我需要做的是至少通知用户google+共享需要已经通过对话框或吐司安装google+ app ,而不是强行关闭(如果可能的话,点击对话框上的确定应该重定向到Google Play上的谷歌+) 。 如果谷歌+应用程序已安装,它会像往常一样。 Intent shareIntent = ShareCompat.IntentBuilder.from(this) .setText(“Hello there! This is a pic of the lazy cat”) .setType(“image/jpeg”) .setStream(Uri.parse(path)) .getIntent() .setPackage(“com.google.android.apps.plus”); startActivity(shareIntent); 任何帮助表示赞赏。 提前致谢。

使用Espresso识别意图时出错

我有两个应用程序通过意图相互交互。 我想validation一下,假设App A在没有实际启动App B的情况下正确调用App B的startActivity 。 我尝试了各种intending组合,Espresso仍然通过意图启动App B ,而不是仅仅将其删除。 这会导致其他测试失败,因为UI被App B阻止。 有任何想法吗? @RunWith( AndroidJUnit4.class ) @LargeTest public class MyActivityUiIntentsTest { @Rule public IntentsTestRule activityRule = new IntentsTestRule( MyActivity.class, true, false ); @Test public void shouldStartOtherActivityWhenButtonClicked () { Intents.init(); intending( toPackage( “my.package” ) ) .respondWith( new ActivityResult( Activity.RESULT_OK, null ) ); activityRule.launchActivity( new Intent() ); onView( […]

validationTwitter应用已在Android上登录

我正在开发的应用程序启动官方Twitter应用程序新post屏幕,以便用户可以在意图中添加一些额外文本发布推文。 我已经很好地工作了,但是如果用户没有使用twitter应用程序登录,事情会有点混乱。 该应用程序启动但用户必须登录,一旦他们完成了正常的推特屏幕出现,如果他们使用后退按钮返回我的应用程序,新的post屏幕实际出现后,回到Twitter提供屏幕上。 在尝试运行意图之前,有什么方法可以检查用户是否实际登录了Twitter应用程序?

启动相机意图,但不保存图像

有没有办法使用相机,但只是暂时保存图像? 我正在使用以下代码加载相机,然后我使用onActivityResult()来获取图像(如果有的话……) Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 问题是当拍摄图像时,它会被保存到SD卡中。 编辑 意图由以下代码调用 String imagePath; imagePath = Environment.getExternalStorageState() + “/images/myimage.jpg”; File file = new File( imagePath ); Uri outputFileUri = Uri.fromFile( file ); Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); cameraIntent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri ); startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 当活动返回我正在使用的数据( onActivityResult )时 File imageFile = new File(imagePath); imageFile.delete(); 图像永远不会被删除。 另外,如果我进入我的图库应用程序,图像中有一个默认名称(如image57465.jpg),我想知道cameraIntent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri ); […]

使用意图URI启动我的应用程序

我知道StackOverflow已经多次询问过这个问题,但我还没有find解决方案。 我的应用会发送一封电子邮件,其中包含一个链接,点击后应启动应用。 根据@hackbod的说法,最好的方法是使用Intent URI(参见本节 )。 这是我设置意图的代码并将其放入电子邮件正文中: Intent customIntent = new Intent(CUSTOM_ACTION); customIntent.setPackage(MY_PACKAGE); customIntent.addCategory(MY_CAT_BROWSABLE); customIntent.addCategory(MY_CAT_DEFAULT); String customUri = customIntent.toUri(Intent.URI_INTENT_SCHEME); String emailBody = getString(R.string.intent_link, customUri); Intent intent = new Intent(Intent.ACTION_SEND); intent.setType(“text/html”); intent.putExtra(Intent.EXTRA_SUBJECT, “Recommending vid”); intent.putExtra(Intent.EXTRA_TEXT , Html.fromHtml(emailBody)); try { startActivity(Intent.createChooser(intent, “Choose email client:”)); } catch (android.content.ActivityNotFoundException ex) { Toast.makeText(this, “There are no email clients installed.”, Toast.LENGTH_SHORT).show(); } […]

意图在android中拍摄video

我需要使用前置摄像头从我的应用程序中获取video。 我正在使用意图来执行此操作。 Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, videoUri); intent.putExtra(“android.intent.extra.durationLimit”, 30); intent.putExtra(“android.intent.extras.CAMERA_FACING”, 1); //to open front facing camera startActivityForResult(intent, VIDEO_CAPTURE); 当我运行应用程序时,我可以使用前置摄像头拍摄video。 但是假设当我点击我的录制video按钮并打开摄像机视图时。 在该用户中,将相机更改为后置摄像头,然后我的意图始终是打开后置摄像头。 它没有采取行 intent.putExtra(“android.intent.extras.CAMERA_FACING”, 1); 有人可以告诉我这是什么问题,是否可以使用意图解决?