我的应用程序的主图标由一个图像中的两个部分组成:徽标和下面的几个字母.这适用于应用程序的启动器图标,但当图标出现在ActionBar的左边缘时,字母会被切断并且看起来不太好.
我想为ActionBar提供一个单独的图标版本,只有"徽标"部分,而不是它下面的字母,但到目前为止一直是空的.老实说,我找不到任何答案,我甚至无法在任何地方找到问题.
是否可以更改操作栏中的溢出图标?我有所有ActionBar项目的蓝色图标,我还想在出现时更改溢出图标.
android android-3.0-honeycomb android-4.0-ice-cream-sandwich android-actionbar
我正在尝试添加SearchView对Android 3.0+ ActionBar的支持,但我无法让它OnCloseListener工作.
这是我的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
searchView = (SearchView) menu.findItem(R.id.search_textbox).getActionView();
searchView.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String newText) {
searchLibrary(newText);
return false;
}
@Override
public boolean onQueryTextSubmit(String query) { return false; }
});
searchView.setOnCloseListener(new OnCloseListener() {
@Override
public boolean onClose() {
System.out.println("Testing. 1, 2, 3...");
return false;
}
});
return true;
}
Run Code Online (Sandbox Code Playgroud)
搜索效果很好,每个人都在工作,除了OnCloseListener.没有任何东西被打印到Logcat.这是我按下"关闭"按钮时的Logcat:
02-17 13:01:52.914: I/TextType(446): TextType = 0x0
02-17 13:01:57.344: I/TextType(446): TextType = 0x0
02-17 13:02:02.944: I/TextType(446): …Run Code Online (Sandbox Code Playgroud) android android-3.0-honeycomb android-4.0-ice-cream-sandwich android-actionbar
我尝试过本教程: 从Web获取数据
我尝试在平板电脑的最新平台Android 3.0上实现它,但是,我收到此错误:" 无法解析主机"www.anddev.org"没有与主机名关联的地址. "
您可以签出我用来证明该文件存在的URL. http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt
我创建了一个私有类,并使用asynctask扩展它.这是代码:
private class Downloader extends AsyncTask<String,Void,String>{
String myString = null;
@Override
protected String doInBackground(String... arg0) {
try{
URL myURL = new URL("http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt");
URLConnection ucon = myURL.openConnection();
InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while((current=bis.read())!=-1){
baf.append((byte)current);
}
myString = new String (baf.toByteArray());
}catch(Exception e){
myString = e.getMessage();
}
return myString;
}
@Override
protected void onPostExecute(String result){
tv.setText(result);
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
android urlconnection android-asynctask android-3.0-honeycomb
我正在使用兼容包来使用Android 2.2中的Fragments.当使用片段,并在它们之间添加转换到backstack时,我想实现一个活动的onResume的相同行为,即,在弹出一个片段到达"前景"(用户可见)之后backstack,我想在片段中激活某种回调(例如,对共享UI资源执行某些更改).
我看到片段框架中没有内置回调.为了达到这个目的,有没有好的做法?
compatibility android android-fragments android-3.0-honeycomb back-stack
在我的Android Honeycomb应用程序中,我使用Tabs作为导航样式.我想在溢出按钮旁边添加一个项目,但我希望该项目成为下拉列表,用户可以在那里选择一个选项,但与导航无关.自从我使用以来最简单的方法是什么mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
是否可以在不使用自定义视图的情况下执行此操作?
android android-layout android-3.0-honeycomb android-spinner android-actionbar
既然最终的SDK已经推出google apis - 使用MapView创建片段的最佳方法是什么?MapView需要MapActivity才能正常工作.
让管理片段的Activity继承自MapActivity(糟糕的解决方案,因为它违背了Fragments自包含的想法)并使用常规的基于xml的布局不起作用.我在MapActivity.setupMapView()中得到一个NullPointerException:
E/AndroidRuntime( 597): Caused by: java.lang.NullPointerException E/AndroidRuntime( 597): at com.google.android.maps.MapActivity.setupMapView(MapActivity.java:400) E/AndroidRuntime( 597): at com.google.android.maps.MapView.(MapView.java:289) E/AndroidRuntime( 597): at com.google.android.maps.MapView.(MapView.java:264) E/AndroidRuntime( 597): at com.google.android.maps.MapView.(MapView.java:247)
我的第二个想法是以编程方式创建MapView并将关联的活动(通过getActivity())作为Context传递给MapView构造函数.不起作用:
E/AndroidRuntime( 834): Caused by: java.lang.IllegalArgumentException: MapViews can only be created inside instances of MapActivity. E/AndroidRuntime( 834): at com.google.android.maps.MapView.(MapView.java:291) E/AndroidRuntime( 834): at com.google.android.maps.MapView.(MapView.java:235) E/AndroidRuntime( 834): at de.foo.FinderMapFragment.onCreateView(FinderMapFragment.java:225) E/AndroidRuntime( 834): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:708) E/AndroidRuntime( 834): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:900) E/AndroidRuntime( 834): at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:978) E/AndroidRuntime( 834): at android.app.Activity.onCreateView(Activity.java:4090) E/AndroidRuntime( 834): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:664)
真的应该有类似MapFragment的东西来处理MapView需要的后台线程我猜...那么目前最好的做法是什么呢?
感谢和问候来自德国,Valentin
android google-maps android-maps android-fragments android-3.0-honeycomb
我目前在叠加层中有一个片段.这是用于登录该服务.在手机应用程序中,我想在叠加层中显示的每个步骤都是他们自己的屏幕和活动.登录过程有3个部分,每个部分都有自己的活动,使用startActivityForResult()调用.
现在我想使用片段和叠加层做同样的事情.叠加层将显示与每个活动相对应的片段.问题是这些片段托管在Honeycomb API中的一个活动中.我可以让第一个片段工作,但后来我需要startActivityForResult(),这是不可能的.是否有类似于startFragmentForResult()的内容,我可以在其中启动一个新片段,当它完成后,它会将结果返回到前一个片段?
我想Holo.Light在支持它的设备上使用主题,然后回到Light其他设备上的常规主题.
目前,引用Holo.Light在3.0+上工作正常,但较旧的API只是恢复到默认的"黑暗"主题.我可以通过样式继承来实现我想要的吗?
android android-theme android-3.0-honeycomb android-4.0-ice-cream-sandwich
通过xml我可以将子菜单项添加到我的动作中ActionBar.

main_menu.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_new_form"
android:icon="@drawable/ic_new_form"
android:title="@string/menu_new_form"
android:showAsAction="ifRoom|withText">
<menu>
<item android:id="@+id/form1"
android:icon="@drawable/attachment"
android:title="Form 1"
android:onClick="onSort" />
<item android:id="@+id/form2"
android:icon="@drawable/attachment"
android:title="Form 2"
android:onClick="onSort" />
</menu>
</item>
</menu>
Run Code Online (Sandbox Code Playgroud)
但是如何通过Java代码添加这些子项呢?它不起作用如下,子项被添加到错误的操作(并且还没有显示drawable),非常正确的按钮,而不是我的"新表单"按钮:

main_menu.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_new_form"
android:icon="@drawable/ic_new_form"
android:title="@string/menu_new_form"
android:showAsAction="ifRoom|withText">
</item>
</menu>
Run Code Online (Sandbox Code Playgroud)
Java代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
Log.d("MainMenu", ",menu title0: " + menu.getItem(0).getTitle());
// returns "New Form"
menu.addSubMenu(0, Menu.NONE, 1, "Form 1").setIcon(R.drawable.attachment);
menu.addSubMenu(0, Menu.NONE, 2, "Form …Run Code Online (Sandbox Code Playgroud) android ×10
android-4.0-ice-cream-sandwich ×3
android-maps ×1
back-stack ×1
google-maps ×1
menuitem ×1