ActionProvider。更改子菜单中的文本,并知道何时按下

时间:2013-09-10 10:50:34

标签: android shareactionprovider

我用这个例子 http://developer.android.com/guide/topics/ui/actionbar.html#ActionProvider 但是,我想现在,如果它可能更改其他文本的“查看全部”文本,例如,我的图库应用程序,是否有西班牙语“ver todo”的文本,如果可能更改?

并且......如果可能的话,知道何时按下操作栏中的分享按钮(在我的情况下是actionbarsherlock)?

我看到“但是,如果操作提供程序提供了操作子菜单,那么当用户打开列表或选择其中一个子菜单项时,您的活动不会接收到对onOptionsItemSelected()的调用”但是..没有其他方式要知道吗?我希望当用户按下“按钮”时,一个accion也会显示要分享的应用程序列表。

public boolean onCreateOptionsMenu(Menu menu) 
 {      
        MenuInflater inflater= getSupportMenuInflater();
        inflater.inflate(R.menu.menu_resultados, menu);



        MenuItem item = menu.findItem(R.id.menu_compartir); 

        mShareActionProvider =(com.actionbarsherlock.widget.ShareActionProvider) item.getActionProvider();
        mShareActionProvider.setShareIntent(createShareIntent());

        return true;
    }


private Intent createShareIntent ()
{
       Intent shareIntent = new Intent(Intent.ACTION_SEND);
       shareIntent.setType("image/jpeg");
       shareIntent.putExtra(Intent.EXTRA_EMAIL,"TestText");
       shareIntent.putExtra(Intent.EXTRA_SUBJECT, "TestSubject");


       return shareIntent;
}

2 个答案:

答案 0 :(得分:0)

您可以更改actionbarsherlock项目中的字符串,方法是更改​​res/values/abs__strings处的行,或者您可以创建文件夹res/values-es,复制abs__strings,然后编辑那里的行。这样,根据设备的语言,您的代码中将包含英语和西班牙语字符串。您在abs__strings中寻找的行称为abs__activity_chooser_view_see_all

只是提示,尝试使用Eclipse中的搜索功能,以便下次更改这些字符串。我通过搜索“看到所有......”找到了这个。

关于知道什么时候按下按钮,我无法理解。我刚刚测试onOptionsItemSelected()不起作用,就像你说的那样......

答案 1 :(得分:0)

尝试为{:

设置setOnMenuItemClickListener
MenuItem item = menu.findItem(R.id.menu_compartir);
        item.setOnMenuItemClickListener(new OnMenuItemClickListener() {

            @Override
            public boolean onMenuItemClick(MenuItem arg0) {
                // TODO Auto-generated method stub
                return false;
            }
        });