1

我正在尝试这两个库在我的 android 应用程序NewQuickActionNewQuickAction3D中创建一个按钮菜单。

使用它们的代码是一样的!但是,如果我使用 NewQuickAction,它可以正常工作,相反,如果我更改项目中的外部库并使用 NewQuickAction3D,它就不起作用并返回此错误:

致命异常:net.londatiga.android.QuickAction.addActionItem(QuickAction.java:213) 的主要 java.lang.NullPointerException

代码是:

    ActionItem myLocationItem   = new ActionItem(ID_MY_LOCATION, "Mia posizione", getResources().getDrawable(R.drawable.location));
    ActionItem nearestItem      = new ActionItem(ID_NEAREST_STATION, "Stazione piu vicina", getResources().getDrawable(R.drawable.location));
    ActionItem activeGpsItem    = new ActionItem(ID_ACTIVE_GPS, "Attiva GPS", getResources().getDrawable(R.drawable.gps));

    // constructor for NewQuickAction       
    final QuickAction mQuickAction  = new QuickAction(this );

    // constructor for NewQuickAction3D
    //final QuickAction mQuickAction    = new QuickAction(this, QuickAction.VERTICAL);

    mQuickAction.addActionItem(myLocationItem);
    mQuickAction.addActionItem(nearestItem);
    mQuickAction.addActionItem(activeGpsItem);


    //setup the action item click listener
    mQuickAction.setOnActionItemClickListener(new QuickAction.OnActionItemClickListener() {
        @Override
        public void onItemClick(QuickAction quickAction, int pos, int actionId) {

            if (actionId == ID_MY_LOCATION) {
                Toast.makeText(getApplicationContext(), "I have no info this time", Toast.LENGTH_SHORT).show();
            } else if (actionId == ID_NEAREST_STATION ) {
                Toast.makeText(getApplicationContext(), "I have no info this time", Toast.LENGTH_SHORT).show();
            } else {
                Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                startActivity(intent);
            }
        }
    });

    ImageButton buttonMenu = (ImageButton) findViewById(R.id.button_menu);
    buttonMenu.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
                mQuickAction.show(v);
           }
        });

似乎用于创建新 ActionItem 的图标和文本在 NewQuickAction3D 中不可见

如果我将库作为普通项目运行(这些库也是演示项目),它们可以正常工作。

有什么想法吗?

4

3 回答 3

1

清理项目,这对我有用!

于 2014-02-24T17:41:11.110 回答
0

您必须添加其他资源文件

布局文件:来自垂直弹出的布局文件夹(action_item_vertical.xml,horiz_separator.xml)和popup_vertical.xml

图片文件:来自 Drawable 文件夹

来自 Values 文件夹的 styles.xml。

在此处检查QuickAction.java并检查第 213 行。

于 2012-08-22T15:36:20.420 回答
0

最后在尝试了很多解决方案之后,解决我的问题的唯一(而不是优雅!)方法是将执行我的弹出菜单所需的类、Xml 文件和库的可绘制对象直接导入我的项目通缉。

这不是一个好方法,但任何东西都对我有用!

于 2013-09-26T09:46:19.710 回答