user1825441
user1825441

Reputation: 557

"No resource found that matches the given name (at 'icon' with value"

Have quite a strange problem

below is my menu activity_action_bar_main.xml and it complains on the

android:icon="@android:drawable/ic_action_view_as_list"

row

<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>

And it complains on my icon

[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').

But I use it elsewhere in my code and it shows up as it should so I now that it is in place.

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;
    }

}

You have any suggestions why it works when I remove the android:icon="@android:drawable/ic_action_view_as_list" line but get BadXML block when I add the icon to the xml file?

Upvotes: 2

Views: 6077

Answers (1)

Lawrence Choy
Lawrence Choy

Reputation: 6108

I think this drawable is not part of the android drawable, so try

android:icon="@drawable/ic_action_view_as_list"

instead.

Upvotes: 3

Related Questions