2012-08-22 62 views
1

我试试这两个库来创建我的android应用程序NewQuickActionNewQuickAction3D中的按钮菜单。安卓菜单库:NewQuickAction3D没有工作

使用它们的代码是相同的! 但是,如果使用NewQuickAction它正常工作,而不是如果我改变外部库在我的项目,我用NewQuickAction3D,它不工作,返回此错误:

FATAL EXCEPTION: main java.lang.NullPointerException at net.londatiga.android.QuickAction.addActionItem(QuickAction.java:213)

的代码是:

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

可见如果我运行库作为一个正常的项目(库也是一个示范项目),他们的工作正常。

有什么想法?

+0

发布您的代码。 – rajpara

+0

@rajpara我添加代码 – lory105

+0

没有消息对我的问题? – lory105

回答

0

最后尝试了很多解决方案后,解决了我的问题的唯一(和不优雅!)的方式,一直到直接导入到我的项目中的类时, Xml文件和执行我想要的弹出式菜单所必需的库的可绘图。

这不是一个好方法,但任何事情都适合我!

0

您必须添加其他资源文件

布局文件:从布局文件夹立式弹出(action_item_vertical.xml,horiz_separator.xml)& popup_vertical.xml

图片文件:从可绘制文件夹

Values文件夹中的styles.xml。

检查QuickAction.java here和检查行号213

+0

在此代码之前加载活动的布局,setContentView(R.layout.main.xml)和item的图像使用getResources()。getDrawable(R.drawable.xxx)加载,如上面的代码中所示。事实上,一切都与NewQuickAction库完美协作,但它不适用于NewQuickAction3D库 – lory105

1

清理项目,这对我有效!