我有一个ScrollView ,它包含一系列Views 。 我想能够确定一个视图当前是否可见(如果它的任何部分当前由ScrollView显示)。 我期望下面的代码来做到这一点,令人惊讶的是它不: Rect bounds = new Rect(); view.getDrawingRect(bounds); Rect scrollBounds = new Rect(scroll.getScrollX(), scroll.getScrollY(), scroll.getScrollX() + scroll.getWidth(), scroll.getScrollY() + scroll.getHeight()); if(Rect.intersects(scrollBounds, bounds)) { //is visible }
我的例子中有三个类:A类,主要活动。 A类调用startActivityForResult: Intent intent = new Intent(this, ClassB.class); startActivityForResult(intent, "STRING"); B类,这个类是一个TabActivity: Intent intent = new Intent(this, ClassC.class); tabHost.addTab… C类,这个类是一个常规活动: Intent intent = this.getIntent(); intent.putExtra("SOMETHING", "EXTRAS"); this.setResult(RESULT_OK, intent); finish(); 在类A中调用onActivityResult,但是resultCode是RESULT_CANCELED而不是RESULT_OK ,返回的intent是null。 如何从TabHost中的活动返回某些内容? 我意识到问题是我的C类实际上是在类B中运行的,而类B是什么将RESULT_CANCELED返回到类A.我只是不知道一个工作。
我从市场上的应用程序获取用户报告,提供以下例外情况: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1109) at android.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:399) at android.app.Activity.onBackPressed(Activity.java:2066) at android.app.Activity.onKeyUp(Activity.java:2044) at android.view.KeyEvent.dispatch(KeyEvent.java:2529) at android.app.Activity.dispatchKeyEvent(Activity.java:2274) at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1803) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112) at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1855) at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1277) at android.app.Activity.dispatchKeyEvent(Activity.java:2269) at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1803) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112) at android.widget.TabHost.dispatchKeyEvent(TabHost.java:297) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112) at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112) at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1855) […]
我想要做的事情似乎很简单,但经过几天的search,我无法弄清楚。 我有一个应用程序,允许用户select多个(最多5个)图像。 我正在使用ImageView 。 当用户点击ImageView ,我想让他们select 从图库中select图像,或者 使用相机捕捉图像。 我开始使用ACTION_GET_CONTENT意图,这对于去画廊很好。 所以然后我尝试使用ACTION_PICK_ACTIVITY意图,让用户select相机或画廊: Intent pickIntent = new Intent(Intent.ACTION_PICK_ACTIVITY); Intent gallIntent=new Intent(Intent.ACTION_GET_CONTENT); gallIntent.setType("image/*"); Intent camIntent = new Intent("android.media.action.IMAGE_CAPTURE"); pickIntent.putExtra(Intent.EXTRA_INTENT, camIntent); pickIntent.putExtra(Intent.EXTRA_INTENT, gallIntent) pickIntent.putExtra(Intent.EXTRA_TITLE, "Select Source"); startActivityForResult(pickIntent, IMAGE_SELECTOR); 但看来我只能添加一个EXTRA_INTENT 。 菜单显示如预期,但唯一的select是画廊和文件….没有相机)。 有没有更好/更简单的方法来做到这一点,我失踪了? 感谢您的帮助。
好的,大家都知道,要隐藏你需要实现的键盘: InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); 但是这里最重要的是如何在用户触摸或select任何不是EditText或softKeyboard的地方时隐藏键盘? 我试图在我的父Activity上使用onTouchEvent() ,但只有当用户触及任何其他视图之外,并且没有滚动视图时才起作用。 我试图实现一个触摸,点击,重点监听没有任何成功。 我甚至试图实现我自己的滚动视图来拦截触摸事件,但我只能得到事件的坐标而不是点击的视图。 有没有一个标准的方法来做到这一点? 在iPhone中,这真的很容易。
我试图在Android应用程序中实现导航的标签。 由于TabActivity和ActivityGroup已被弃用,我想用碎片来实现它。 我知道如何为每个选项卡设置一个片段,然后在单击选项卡时切换片段。 但是,我怎样才能有一个单独的背部堆栈为每个选项卡? 例如,片段A和B将位于Tab 1下,片段C和D位于Tab 2下面。当应用程序启动时,将显示片段A并selectTab 1。 然后片段A可能被replace为片段B.当select了片段2时,应该显示片段C. 如果select了Tab 1,则应再次显示片段B. 此时应该可以使用后退button来显示片段A. 此外,旋转设备时,维护每个选项卡的状态也很重要。 BR Martin
我有一个TextView,我想要在其顶部和底部边框添加一个黑色边框。 我试着向TextView添加android:drawableTop和android:drawableBottom ,但是这只会导致整个视图变黑。 <TextView android:background="@android:color/green" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawableTop="@android:color/black" android:drawableBottom="@android:color/black" android:text="la la la" /> 有没有一种方法可以轻松地添加一个顶部和底部的边界到一个视图(特别是一个TextView)在Android?
我一直在这个问题上几个小时。 从github上下载一个仓库之后,任何.xml文件中唯一的错误是: No resource found that matches the given name '@style/Theme.AppCompat.Light' 代码非常简单,但是我没有find一个简单的答案,就是如何减less错误。 这里是代码(在文件res / values / styles.xml中): <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light"> <!– API 14 theme customizations can go here. –> </style> 该项目位于: https : //github.com/erikswed/InstaChatX我在Windows上,使用Eclipse开普勒
我有一个奇怪的问题。 我正在制作一个targetdk 13的应用程序。 在我的主要活动的onCreate方法中,我调用getActionBar()来设置我的操作栏。 在Android 3.2模拟器上运行时,这样工作正常,但是在使用Android 3.0和3.1时, getActionBar()方法返回null。 我觉得这很奇怪,我不明白为什么会这样做。 这是模拟器的错误,还是有我需要做的,为了确保我的应用程序有一个操作栏? 解决方法:我想我已经find了解决这个问题的方法。 我没有使用setContentView来设置活动的布局。 相反,我正在使用fragmentTransaction.add(android.R.id.content, mFragment, mTag)添加一个片段的活动。 这在3.2中正常工作,但在早期的蜂窝版本中,如果不在onCreate()方法中使用setContentView,则显然不会设置操作栏。 所以我通过在我的onCreate()方法中使用setContentView()方法来修复它,只是提供一个包含空FrameLayout的布局。 我仍然可以像以前一样使用fragmentTransaction.add(android.R.id.content, mFragment, mTag)方法。 这不是最漂亮的修复,但它的工作原理。
我知道Google的人要求我们不要将Scrollable视图放在另一个Scrollable视图中,但是有没有官方声明指示我们不这样做?