-1

我正在使用网格视图,我需要在某处放置一个按钮,因此当用户单击它时会进行一些计算。

我认为“花哨”和相对不错(设计明智)的实现是使用操作栏。

如何在适配器中实现操作栏(网格视图需要适配器)?

我也尝试过上下文菜单,但遇到与操作栏相同的问题,因为它们需要从 Activity 继承

    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenu.ContextMenuInfo menuInfo) {
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
        menu.add(0, test1, 0, "TEST");
        menu.add(0, test2, 0, "Test2");
    }


    public boolean onContextItemSelected(MenuItem item) {


        switch (item.getItemId()) {
        case test1:

        case test2:

        default:
                return false;
        }

    }
4

1 回答 1

0

如果您处于 API 级别 11 或更高级别,则只需Theme.Holo在布局 xml 中使用样式。例如:

<activity android:theme="@style/Theme.Holo.Light" ... >

然后你可以用你的menu.xml. 例如:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >    
    <item android:id="@+id/action_search
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"/>    
    <item android:id="@+id/action_compose"
          android:icon="@drawable/ic_action_compose"
          android:title="@string/action_compose" />
</menu>

在您的活动中,您必须覆盖 onOptionsItemSelected:

@Override
public boolean onOptionsItemSelected(MenuItem item) {    
    // Handle presses on the action bar items    
    switch (item.getItemId()) {        
        case R.id.action_search:            
            openSearch();            
            return true;        
        case R.id.action_compose:            
            composeMessage();            
            return true;        
        default:            
            return super.onOptionsItemSelected(item);    
    }
}

有关更多信息,请查看官方文档

于 2013-10-22T12:43:13.013 回答