1

これらの 2 つのライブラリを試して、Android アプリケーションNewQuickActionNewQuickAction3Dでボタン メニューを作成します。

それらを使用するコードは同じです!ただし、NewQuickAction を使用すると正しく動作しますが、プロジェクトの外部ライブラリを変更して NewQuickAction3D を使用すると、動作せず、次のエラーが返されます。

致命的な例外: net.londatiga.android.QuickAction.addActionItem(QuickAction.java:213) での main 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

0

他のリソース ファイルを追加する必要があります

Layout files : 縦型ポップアップの Layout フォルダーから (action_item_vertical.xml、horiz_separator.xml) & popup_vertical.xml

画像ファイル: Drawable フォルダーから

Values フォルダーの styles.xml。

ここで QuickAction.javaを確認し、行番号 213 を確認します。

于 2012-08-22T15:36:20.420 に答える