在Xamarin.Android中使用AppCompat-Toolbar而不从AppCompatActivity派生?

时间:2015-11-11 20:59:56

标签: xamarin xamarin.android android-appcompat

我想在我的Xamarin.Android应用中为活动添加工具栏。这应该适用于旧版Android,因此我使用Android Support v7 AppCompat库实现此功能。

为了使工具栏像操作栏一样,我必须调用SetSupportActionBar(见here

public class MainActivity : AppCompatActivity
{
    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);

        // Set our view from the "main" layout resource
        SetContentView (Resource.Layout.main);

        var toolbar = FindViewById<Toolbar> (Resource.Id.toolbar);

        //Toolbar will now take on default actionbar characteristics
        SetSupportActionBar (toolbar);

        SupportActionBar.Title = "Hello from Appcompat Toolbar";

        // ...
    }
}

方法SetSupportActionBar来自AppCompatActivity,这就是示例代码中的Activity首先从该类派生的原因。

现在,如果我无法从AppCompatActivity派生我的Activity,有没有办法利用AppCompatActivity的功能,例如SetSupportActionBar?

我的活动必须扩展另一个基类才能正常运行。

1 个答案:

答案 0 :(得分:0)

我知道这确实很老,但是如果人们仍然需要它,这是代码:

ALTER PROCEDURE [UpdateMyTable] (
    @Id int,
    @ModifiedOn datetime,
    @GeneratedOn datetime
)
AS
DECLARE @PreviousModifiedOn datetime
--Declare a table variable for storing the info from Output
DECLARE @ModifiedOnTable AS TABLE
(
  ModifiedOn  DATETIME
)


UPDATE
    [MyTable]
SET
    [ModifiedOn] = @ModifiedOn,
    @PreviousModifiedOn = [ModifiedOn]
OUTPUT DELETED.ModifiedOn INTO @ModifiedOnTable
WHERE
    [Id] = @Id AND [ModifiedOn] <= @GeneratedOn

IF @PreviousModifiedOn <= @GeneratedOn
    SELECT ModifiedOn FROM @ModifiedOnTable
    ELSE SELECT -1

使用了Killman Java explanation

的链接