“找不到与给定名称匹配的资源(在'icon'处有值”

时间:2012-11-15 01:57:42

标签: android android-layout

有一个很奇怪的问题

下面的

是我的菜单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块吗?

1 个答案:

答案 0 :(得分:3)

我认为这个drawable不是android drawable的一部分,所以试试

android:icon="@drawable/ic_action_view_as_list"

代替。