Articles of android 3.0 honeycomb

Android创建自定义SearchView搜索操作

在我的应用程序中,我使用Action Bar,其中包含自定义SearchView。 我想在用户点击搜索字段中的输入按钮时使用一些自定义代码。 但我无法find一种方法来捕捉用户点击SearchView中的输入按钮的那一刻。 现在我尝试了几种捕获搜索操作的方法,但我似乎无法find它。 我的按钮定义如下: 这属于CustomSearchView类: public class CustomSearchView extends SearchView implements OnClickListener, android.view.View.OnKeyListener{ public CustomSearchView(Context context) { super(context); this.setOnSearchClickListener(this); this.setSubmitButtonEnabled(true); this.setOnClickListener(this); this.setOnKeyListener(this); } @Override public void onClick(View v) { Log.d(“SEARCH”, “Onclick! ” + this.getQuery()); } @Override public boolean onKey(View v, int keyCode, KeyEvent event) { // TODO Auto-generated method stub Log.d(“SEARCH”, “Search onkey”); […]

Honeycomb 3.2上的android searchview setOnActionExpandListener

我正在使用android-support-v4开发Android 3.2及更高版本的应用程序。 当扩展操作栏中的SearchView以及何时折叠时,我需要为“拦截”实现OnActionExpandListener 。 我的Android 4.0及更高版本的代码没问题,但对于3.2没有。 menu.xml文件 MyActivity.java @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.reader, menu); final MenuItem searchMI = menu.findItem(R.id.menu_search); if(searchView == null) { //searchView = (SearchView) searchMI.getActionView(); searchView = (SearchView) MenuItemCompat.getActionView(searchMI); searchView.setOnQueryTextListener(this); searchView.setOnSuggestionListener(this); searchView.setOnCloseListener(new OnCloseListener() { @Override public boolean onClose() { //some code return false; } }); } int currentapiVersion = android.os.Build.VERSION.SDK_INT; if […]

是否有可能在Android中获得video的分辨率?

我正在寻找一种方法来获得Android中任何给定video的分辨率。 它不必与Android中支持的格式之外的其他格式一起使用,但如果确实如此,它会很棒。 如果您不确定Android中支持的格式,请参阅此页面: http://developer.android.com/guide/appendix/media-formats.html 我认为使用MediaPlayer类可以做我想做的事情,但这看起来非常愚蠢和低效。 另外,我想要一种相对较快的方式。 我的目标是Android 3.0+,如果这有任何区别的话。 Honeycomb还支持.mkv文件,虽然直到Android 4.0才正式支持。

ActionBarSherlock setCustomView无法在Android 3.2中运行

我最近升级了我的应用程序以使用ActionBarSherlock 4.1。 由于在动作栏上设置自定义视图时,在Honeycomb上运行应用程序的升级用户会因为空指针exception而关闭力。 我将一个包含两个微调器的自定义视图添加到操作栏,这适用于Android 4.0和4.1,但不适用于3.2。 bar.setCustomView(R.layout.custom_action_bar);// spinners actionBarViewHolder= new CustomActionBarViewHolder(); actionBarViewHolder.categorySpinner = (Spinner) findViewById(R.id.actionbar_catergory); actionBarViewHolder.sortBySpinner = (Spinner) findViewById(R.id.actionbar_sortby); 在Android 3.2上,在4.0和4.1中找不到微调器,它们的视图被find并且任何东西都能顺利运行。 我没有在3.0模拟器上尝试过该应用程序,但我认为该问题仍然存在。 任何想法可能是什么问题?

如何修复Html.fromHtml链接焦点可见性问题(在ICS和Honeycomb中)?

要使TextView显示(并且对其友好)Html字符串,我的代码看起来像: // itemHtml is a String of HTML defined above TextView itemContent = (TextView) findViewById(R.id.itemContent); itemContent.setText(Html.fromHtml(itemHtml)); itemContent.setMovementMethod(LinkMovementMethod.getInstance()); 如果Html字符串具有链接,则TextView会生成可单击且可聚焦的链接。 当用户关注特定链接时(例如,通过使用d-pad),链接文本以某种显着方式改变以显示获得焦点。 问题是,当我使用带有D-pad的设备使用Honeycomb(例如Google TV)或Android的Ice Cream Sandwich风格测试相同的模式时,文本中的链接没有显示该链接具有焦点的明显迹象。 我知道它正在获得焦点,因为当你点击输入时它会执行指定的操作。 你甚至可以在文本中的各种链接之间移动; 你只是猜测你目前所处的链接,这会导致非常糟糕的用户体验。 有什么我做错了吗? 有没有办法解决这个问题或解决这个问题?

Android的大堆选项是否适用于升级到ICS的旧手机?

我自己有一个Galaxy Nexus,我知道android:largeHeap=”true”清单选项适用于这款手机,但我想知道它是否适用于升级到冰淇淋三明治的旧款手机,即三星Nexus S. 我之所以要问的是,我构建了一个大量使用大位图的应用程序,该应用程序最初是为具有48 MB堆大小的平板电脑而设计的。 Galaxy Nexus还为每个应用程序提供48 MB的可用堆大小,因此我的应用程序在这款手机上运行得非常漂亮,尽管它不是平板电脑。 问题是Nexus S只有32 MB的堆可用,所以我真的需要应用程序的大堆选项来处理这些带有ICS的旧手机。 我的问题: android:largeHeap选项是否仍会增加可用堆内存? 即如果Nexus S默认为32 MB,我是否可以使用此function访问64 MB的perhap? 对于那些不熟悉此选项的人,它会以降低性能为代价增加应用程序的可用堆内存量。 它应该只在没有其他选择时使用。 更新 这是显示可用堆大小的应用程序包: http : //michellbak.dk/TestHeapSize.apk 源代码如下所示,表明没有任何危害: package com.miz.heapsize; import android.app.Activity; import android.app.ActivityManager; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends Activity { private TextView text; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ActivityManager am = […]

设置targetSdkVersion =“13”会导致活动忽略android:configChanges =“orientation”标志

似乎API级别13(据我所知,“默默地”)引入了对android:configChanges属性的处理方式的更改。 在我的特定情况下,当应用程序清单中的“targetSdkVersion”设置为“13”时,任何配置为内部处理方向更改的活动(例如,不应在屏幕旋转时重新启动)都将始终重新启动,而不管android:configChanges =声明中的“orientation”属性。 将“targetSdkVersion”简单地切换为“12”可恢复预期的行为。 我搜索了API 13发行说明,但没有find任何关于此类更改的提及。 有谁知道API 13(以及可能更晚的API)是否会设计不支持android:configChanges =“orientation”,或者是否有另一种方法来实现这一点。

单击项目时的Android操作栏自定义下拉视图

我正在为平板电脑编写一款Android应用。 我已经使用操作栏创建了我的图标。 但是,我需要在单击其中一个菜单项时打开自定义视图。 我不想要自定义操作栏 – 我需要在单击“浏览主题”操作栏项时为自定义视图充气。 此视图需要显示为下拉列表,但使用我自己的自定义布局,因为它不会用于导航。 这是我的menu.xml 我假设ActionProviderClass允许我在单击操作栏项时实例化自定义视图但我无法find方法 – 也许我走错了路。 任何有关这方面的帮助将非常感谢! 谢谢! 更新:感谢动作栏样式的链接,但我不想简单地设置下拉样式。 我想夸大自定义视图。 该视图还将执行数据库查询等。

“清除数据”是否也会杀死应用程序?

当(在Gingerbread,2.3.x中)我点击Menu => Manage Apps => App中的“清除数据”按钮时,“强制关闭”按钮也会被禁用。 这是否意味着“清除数据”也会杀死应用程序? 此外,我注意到在冰淇淋三明治中这不会发生。 那么,“清晰数据”的工作方式在姜饼和冰淇淋三明治之间有所不同吗? 更新 :正如MisterSquonk所说,Froyo(2.2.x)的行为与ICS(4.x)相同,即在您清除应用程序数据后不会禁用强制关闭。 任何人都知道为什么这种行为如此不同? 姜饼或一些临时实验中的错误是什么导致应用程序被清除以及清除数据? PS无法创建“姜饼”标签,没有足够的声誉:) PPS @MisterSquonk,感谢标签:) 更新2 :检查Honeycomb(3.2),它的行为与Froyo一样,也就像ICS一样。 清除数据后,只有Gingerbread禁用强制关闭。

如何通过片段获得有关异步任务结果的通知?

我有一个使用片段的Activity。 根据用户的交互,这些片段可能来来去去。 许多这些片段将作业发送到IntentService,这样就可以以异步方式运行。 IntentService应该如何报告这些工作的结果? 启动作业的片段可能不存在。 如果作业完成且起始片段当前处于活动状态,则应该收到相关通知,并采取相应措施。 如果不是,那么就不需要采取任何行动。 我曾考虑使用广播意图和BroadcastReceiver组件,但片段不能注册接收者,只能注册活动。 你会建议什么解决方案?