1

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

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

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

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;
}
4

2 回答 2

0

您可以更改 actionbarsherlock 项目中的字符串,方法是更改​​行res/values/abs__strings,或者您可以创建一个文件夹res/values-es,复制到那里abs__strings,然后编辑那里的行。这样,您的代码中将同时包含英语和西班牙语字符串,具体取决于设备的语言。您要查找的行abs__strings称为abs__activity_chooser_view_see_all

只是一个提示,下次尝试使用 Eclipse 中的搜索功能来更改这些字符串。我通过搜索“查看全部...”发现了这一点。

关于知道何时按下按钮,我无法弄清楚。我刚刚测试了onOptionsItemSelected()不起作用,就像你说的那样......

于 2013-12-03T10:26:55.297 回答
0

尝试设置 setOnMenuItemClickListener ex:

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;
            }
        });
于 2013-12-03T10:46:28.013 回答