Tag: android

RecyclerView与ListView

从android开发者( 创build列表和卡片 ): RecyclerView小部件是ListView的更高级和灵活的版本。 好吧,这听起来很酷,但是当我看到这个示例图片时,我对这两者之间的区别感到困惑。 上面的图片可以通过带有自定义适配器的ListView轻松创build。 那么,在什么情况下应该使用RecyclerView ?

ScrollView中的图像网格

我正在试图创build一个文本和图像的屏幕。 我想要像网格布局图像,如下所示,但我希望他们没有滚动function,除了由周围的ScrollView提供的。 一张图片最能说明我的问题: <ScrollView> <LinearLayout> <ImageView /> <TextView /> <GridView /> <TextView /> </LinearLayout> </ScrollView> 什么是最好的方式来显示不同数量的图像网格,其中网格没有滚动function? 请注意,禁用GridView的滚动function不起作用,因为这只是禁用滚动条,但不显示所有项目。 更新:下图显示了在GridView中禁用滚动条的样子。

即使活动已经被破坏,AsyncTask也不会停止

我有一个AsyncTask对象,它在创build活动时开始执行,并在后台执行任务(最多下载100个图像)。 一切正常,但有这种奇特的行为,我不明白。 例如:当android屏幕的方向改变时,活动被破坏并重新创build。 所以我重写了onRetainNonConfigurationInstance()方法,并保存在AsyncTask中执行的所有下载的数据。 我这样做的目的是在定向更改期间,每次活动被销毁时都不会运行AsyncTask,但正如我在日志中所看到的,以前的AsyncTask仍在执行中。 (虽然数据保存正确) 我甚至试图取消活动的onDestroy()方法中的AsyncTask,但是日志仍然显示AsyncTask正在运行。 这真是奇怪的行为,如果有人能告诉我停止/取消AsyncTask的正确过程,真的很感激。 谢谢

从DialogFragmentcallback到片段

问题:如何从DialogFragment创build一个callback到另一个Fragment。 在我的情况下,涉及的Activity应该完全不知道DialogFragment。 考虑我有 public class MyFragment extends Fragment implements OnClickListener 然后在某个时候我可以做 DialogFragment dialogFrag = MyDialogFragment.newInstance(this); dialogFrag.show(getFragmentManager, null); MyDialogFragment的外观 protected OnClickListener listener; public static DialogFragment newInstance(OnClickListener listener) { DialogFragment fragment = new DialogFragment(); fragment.listener = listener; return fragment; } 但是,如果DialogFragment在其生命周期中暂停并恢复,则不能保证侦听器将在其周围。 碎片中的唯一保证是通过setArguments和getArguments通过Bundle传入的。 有一种方法可以引用活动,如果它应该是监听者: public Dialog onCreateDialog(Bundle bundle) { OnClickListener listener = (OnClickListener) getActivity(); …. return new AlertDialog.Builder(getActivity()) […]

用于长时间运行的Android AsyncTask

引用在这里find的AsyncTask的文档,它说 理想情况下,AsyncTasks应该用于短操作(最多几秒钟)。如果需要保持线程长时间运行,强烈build议您使用java.util.concurrent pacakge提供的各种API,例如执行器,ThreadPoolExecutor和FutureTask。 现在我的问题出现了,为什么? doInBackground函数运行在UI线程之外。 那么在这里长时间的运行会有什么危害呢?

Android自定义button; 改变文字颜色

我做了一个button,这样可以在不同状态下修改背景: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/btn_location_pressed" /> <!– pressed –> <item android:state_focused="true" android:drawable="@drawable/btn_location_pressed"/> <!– focused –> <item android:drawable="@drawable/btn_location"/> <!– default –> 这里的问题是,我也试图改变textColor,因为我用可绘制的,但我不能。 我已经尝试过android:textColor和android:color,但是第一个不工作,而秒改变我的背景。 下一个代码是我的布局的一部分。 关于文字颜色,它只适用于正常状态的文字颜色,因此在按下时不会将其改为白色 <Button android:id="@+id/location_name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingTop="5dp" android:background="@drawable/location" android:textSize="15sp" android:textColor="@color/location_color" android:textColorHighlight="#FFFFFF" /> 有人有线索吗?

Android的M – 检查运行时权限 – 如何确定用户选中“永不再问”?

根据这个: http : //developer.android.com/preview/features/runtime-permissions.html#coding一个应用程序可以检查运行时权限和请求权限,如果它尚未被授予。 随后将显示以下对话框: 如果用户拒绝重要权限,应用程序应该显示为什么需要权限以及影响下降的解释。 该对话框有两个选项:1)再次重试(再次请求权限),2)拒绝(应用程序将没有该权限)。 如果用户选中“永不再问”,则不应该显示第二个带解释的对话框,特别是如果用户之前已经拒绝了一次。 现在的问题是:我的应用程序如何知道用户是否已经检查了“再也不问”? IMO的onRequestPermissionsResult(int requestCode,String []权限,int [] grantResults)不会给我那个信息。 第二个问题是:Google是否有计划将自定义消息合并到权限对话框中,以解释为什么应用程序需要权限? 那样的话,永远不会有第二个对话,这肯定会带来更好的效果。

像Google一样的Actionbar通知计数图标(徽章)

是否有一个Android标准徽章或方法来显示操作栏通知图标与谷歌的例子计数? 如果没有,那么最好的办法是什么? 我是新来的机器人,请帮助。

build立设备进行开发(??????没有权限)

我正在使用三星Galaxy Nexus手机( Android 4.0平台)。 我正在Ubuntu Linux操作系统上开发Android应用程序。 我想直接在三星手机上运行我的应用程序,所以我做了以下设置步骤: 在我的项目AndroidManifest.xml文件中,将android:debuggable="true"到<application>元素 在设备上, 设置>安全启用未知来源 在设备上, 设置>开发人员选项启用USBdebugging 在我的电脑上,创build文件/etc/udev/rules.d/51-android.rules ,文件的内容是: SUBSYSTEM ==“usb”,ATTR {idVendor} ==“04E8”,MODE =“0666”,GROUP =“plugdev” 在我的电脑上运行命令chmod a+r /etc/udev/rules.d/51-android.rules 然后,我打开一个terminal,并在我的电脑上执行命令adb devices ,我得到: List of devices attached ???????????? no permissions 由于我没有看到我的设备,但只有“???????没有权限”,我然后运行以下命令: adb kill-server adb start-server adb devices 但我仍然得到: List of devices attached ???????????? no permissions 为什么? 我在想什么?

单击后退button两次以退出活动

最近我在很多Android应用程序和游戏中注意到了这种模式:当点击后退button退出应用程序时, Toast会出现类似于“请再次单击BACK退出”的消息。 当我越来越频繁地看到它时,我在想,是否可以通过某种方式访问​​活动中的内置function? 我看了很多类的源代码,但我似乎无法find任何有关的。 当然,我可以考虑几个方法来轻松实现相同的function(最简单的方法是在活动中保留一个布尔值,以指示用户是否已经点击过一次…),但是我想知道是否已经有一些东西在这里。 编辑 :作为@LAS_VEGAS提到,我并不是真正的意思是“退出”的传统意义。 (即终止)我的意思是“回到开始应用程序开始活动之前的任何事情”,如果这是有道理的:)