2016-09-01 17 views
0

私はリストの項目とリストの項目にコンテキストメニューを持っています。 私は非常に簡単なことを作成しようとしました - アンドロイド:アイコンを使用してコンテキストメニューにアイコンを追加してください。 コンテキストメニューは表示されますが、アイコンは表示されません。 どうしたのですか? ありがとうございます。Androidスタジオ:コンテキストメニューのアイコンが表示されません

私のコンテキストメニューXMLとmainactivity.javaは、次のとおりです。

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:id="@+id/action_delete" 
     android:icon="@android:drawable/ic_delete" 
     android:title="Delete" /> 

    <item 
     android:id="@+id/action_add" 
     android:icon="@android:drawable/ic_menu_add" 
     android:title="Add" /> 
</menu> 


public class MainActivity extends AppCompatActivity { 

    public ListView listView; 
    String listItems[]={"One", "Two", "Three"}; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     listView=(ListView) findViewById(R.id.mylist); 
     ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, listItems); 
     listView.setAdapter(adapter); 
     registerForContextMenu(listView); 
    } 

    @Override 
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { 
     super.onCreateContextMenu(menu, v, menuInfo); 
     menu.setHeaderTitle("Select the action"); 

     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.main_menu, menu); 
    } 
} 

答えて

1

必ずこれらのリソースを変更するためにバインドされているとして、あなたのSDKフォルダからアイコンとしてのローカルコピーを取得しようとすると、アプリの動作は同じではないかもしれません。

注:

あなたが任意のアイコンや他の内部描画可能なリソースを使用したい場合は、あなたのアプリケーションのリソースでこれらのアイコンやドロウアブルのローカルコピーを保存する必要があり、その後、アプリケーションコードからローカルコピーを参照。こうすることで、システムのコピーが変更された場合でも、アイコンの外観を制御できます。

<item 
    android:id="@+id/action_delete" 
    android:icon="@drawable/ic_delete" 
    android:showAsAction="always" 
    android:title="Delete" /> 

<item 
    android:id="@+id/action_add" 
    android:icon="@drawable/ic_menu_add" 
    android:showAsAction="always" 
    android:title="Add" /> 

は、SDKを通じてパブリックではありませんまた、さまざまなリソースがありますので、ベストプラクティスは、ローカルコピーを持っていることです:あなたは、両方のローカルコピーはこれを試して取得した後

+0

アイコンをロケールコピーとしてコピーし、showAsActionを使用しようとしましたが、結果はありませんでした。フローティングコンテキストメニューにアイコンは表示されません。 –

関連する問題