作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
有个奇怪的问题
下面是我的菜单 activity_action_bar_main.xml,它在
android:icon="@android:drawable/ic_action_view_as_list"
行
<menu xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
android:id="@+id/menu_settings"
android:orderInCategory="100"
android:showAsAction="ifRoom|withText"
android:title="Action Bar1"
android:icon="@android:drawable/ic_action_view_as_list"/>
</menu>
它在我的图标上提示
[2012-11-15 02:38:53 - TabsimpleActionBar] W/ResourceType( 3908): Bad XML block: header size 789 or total size 0 is larger than data size 0
[2012-11-15 02:38:53 - TabsimpleActionBar] C:\Users\djzingo\workspace1\TabsimpleActionBar\res\menu\activity_action_bar_main.xml:4: error: Error: No resource found that matches the given name (at 'icon' with value '@android:drawable/ic_action_view_as_list').
但我在我的代码中的其他地方使用了它并且它显示了它应该出现的所以我现在它就位了。
package com.ahmad.actionBar;
import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.ActionBar.TabListener;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.Menu;
import android.widget.RelativeLayout;
@SuppressLint("NewApi")
public class ActionBarMain extends Activity implements TabListener {
RelativeLayout rl;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_action_bar_main);
try {
rl = (RelativeLayout) findViewById(R.id.mainLayout);
fragMentTra = getFragmentManager().beginTransaction();
ActionBar bar = getActionBar();
bar.addTab(bar.newTab()
.setText("Collection")
.setIcon(R.drawable.ic_action_view_as_list)//It works here
.setTabListener(this));;;
bar.addTab(bar.newTab()
.setText("Summary")
.setIcon(R.drawable.ic_action_info)
.setTabListener(this));;;
bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM
| ActionBar.DISPLAY_USE_LOGO);
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
bar.setDisplayShowHomeEnabled(true);
bar.setDisplayShowTitleEnabled(false);
bar.show();
} catch (Exception e) {
e.getMessage();
}
}
FragMent1 fram1;
FragmentTransaction fragMentTra = null;
FragMent2 fram2;
FragMent3 fram3;
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if (tab.getText().equals("Collection")) {
try {
rl.removeAllViews();
} catch (Exception e) {
}
fram1 = new FragMent1();
fragMentTra.addToBackStack(null);
fragMentTra = getFragmentManager().beginTransaction();
fragMentTra.add(rl.getId(), fram1);
fragMentTra.commit();
} else if (tab.getText().equals("Summary")) {
try {
rl.removeAllViews();
} catch (Exception e) {
}
fram2 = new FragMent2();
fragMentTra.addToBackStack(null);
fragMentTra = getFragmentManager().beginTransaction();
fragMentTra.add(rl.getId(), fram2);
fragMentTra.commit();
} else if (tab.getText().equals("Details")) {
try {
rl.removeAllViews();
} catch (Exception e) {
}
fram3 = new FragMent3();
fragMentTra.addToBackStack(null);
fragMentTra = getFragmentManager().beginTransaction();
fragMentTra.add(rl.getId(), fram3);
fragMentTra.commit();
}
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_action_bar_main, menu);
return true;
}
}
你有什么建议,为什么当我删除 android:icon="@android:drawable/ic_action_view_as_list"行时它有效,但是当我将图标添加到 xml 文件时却得到 BadXML block ?
最佳答案
我觉得这个drawable不是android drawable的一部分,所以试试
android:icon="@drawable/ic_action_view_as_list"
相反。
关于android - "No resource found that matches the given name (at ' 图标 ' with value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13390486/
我是一名优秀的程序员,十分优秀!