Quantcast
Channel: Recent Threads — Xamarin Community Forums
Viewing all 204402 articles
Browse latest View live

Need equivalent to an Android Activity for UWP & iOS

$
0
0

I got on GitHub this project to access Google Drive using Xamarin.Forms solution. Good that it works perfectly for Android. I wanted to extend to iOS & UWP. Google Drive API needs an Android Activity 'Custom URL Schem Interceptor'. I need how to implement it for iOS & UWP. The android activity code is given below. Someone might have already done that I hope.

using Android.App;
using Android.Content;
using Android.Content.PM;
using Android.OS;
using System;
using Xamarin.Auth;

namespace XFCloudStorage.Droid
{
    [Activity(Label = "CustomUrlSchemeInterceptor", NoHistory = true, LaunchMode = LaunchMode.SingleTop)]
    [IntentFilter(new[] { Intent.ActionView }, Categories = new[] { Intent.CategoryDefault, Intent.CategoryBrowsable }, DataSchemes = new[] { "com.esmsmartsolutions.xfcloudstorage" }, DataPath = "/oauth2redirect")]
    public class ActivityCustomUrlSchemeInterceptor : Activity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            global::Android.Net.Uri uri_android = Intent.Data;
            CustomTabsConfiguration.CustomTabsClosingMessage = null;
            var uri = new Uri(Intent.Data.ToString());
            AuthenticatorHelper.OAuth2Authenticator.OnPageLoading(uri);
            var intent = new Intent(this, typeof(MainActivity));
            intent.SetFlags(ActivityFlags.ClearTop | ActivityFlags.SingleTop);
            StartActivity(intent);
            this.Finish();
            return;
        }
    }
}

Create Multiple Table with SQLite Database

$
0
0

hello, xamarians,
I am creating a project and I want to need to more than 3 tables but I don't understand how to create
please help me out.

Xam.Plugin.Media ....Manifest file is failing to build/debug (Droid)

$
0
0

Everything was working. Updated VS (to fix iOS error)....now my Manifest is giving me an error:

unexpected element <provider> found in <manifest>.

Figured out the issue real quick. My manifest file goes from this:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.myApp" android:installLocation="auto">
    <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="28" />
    <application android:label="MyApp" android:icon="@drawable/Logo"></application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.CAPTURE_SECURE_VIDEO_OUTPUT" />
    <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT" />
    <!--- this is where the "magic" will happen below --- comment not in code -->
    <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.myApp.fileprovider" android:exported="false" android:grantUriPermissions="true">
        <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"></meta-data>
    </provider>
</manifest>

To adding an "application" child and excludes the "provider".....

  <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT" />
  ...
  <application android:label="MyApp" android:icon="@drawable/logo" android:name="android.app.Application" android:allowBackup="true" android:debuggable="true">
    <activity android:configChanges="orientation|screenSize" android:icon="@mipmap/icon" android:label="MyApp" android:theme="@style/MainTheme" android:name="md5a8c6c68a1c8ff1337a1f00940961e4a2.MainActivity">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    <activity android:configChanges="orientation|screenSize" android:name="md54fe4aef201482be7d95d72c0c9bf0b33.FilePickerActivity" />
    <activity android:configChanges="orientation|screenSize" android:name="md54cd65ac53ae710bff80022afc423e0f3.MediaPickerActivity" />
    <service android:name="md5dcb6eccdc824e0677ffae8ccdde42930.KeepAliveService" />
    <receiver android:enabled="true" android:exported="false" android:label="Essentials Battery Broadcast Receiver" android:name="md5d630c3d3bfb5f5558520331566132d97.BatteryBroadcastReceiver" />
    <receiver android:enabled="true" android:exported="false" android:label="Essentials Energy Saver Broadcast Receiver" android:name="md5d630c3d3bfb5f5558520331566132d97.EnergySaverBroadcastReceiver" />
    <receiver android:enabled="true" android:exported="false" android:label="Essentials Connectivity Broadcast Receiver" android:name="md5d630c3d3bfb5f5558520331566132d97.ConnectivityBroadcastReceiver" />
    <provider android:authorities="com.myApp.fileProvider" android:exported="false" android:grantUriPermissions="true" android:name="xamarin.essentials.fileProvider">
      <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/xamarin_essentials_fileprovider_file_paths" />
    </provider>
    <receiver android:enabled="true" android:exported="false" android:name="md51558244f76c53b6aeda52c8a337f2c37.PowerSaveModeBroadcastReceiver" />
    <provider android:name="mono.MonoRuntimeProvider" android:exported="false" android:initOrder="1999999999" android:authorities="com.myApp.mono.MonoRuntimeProvider.__mono_init__" />
    <!--suppress ExportedReceiver-->
    <receiver android:name="mono.android.Seppuku">
      <intent-filter>
        <action android:name="mono.android.intent.action.SEPPUKU" />
        <category android:name="mono.android.intent.category.SEPPUKU.com.myApp" />
      </intent-filter>
    </receiver>
  </application>
...
  <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.myApp.fileprovider" android:exported="false" android:grantUriPermissions="true">
    <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"></meta-data>
  </provider>
</manifest>

I literally have no idea what to do :#

Project/Environment info:
Xamarin.Plugin.FilePicker v.4.0.1.5
Xamarin.Forms v.4.0.0.425677 (otherwise error received - no access to folders XML folders in documentation)

How to create custom entry

$
0
0

Hello,
as am new to this platform I have no idea how to create a custom entry like this with a label (field name) on the border of the entry

How to create custom entry

$
0
0

Hello,
as am new to this platform I have no idea how to create a custom entry like this with a label (field name) on the border of the entry

How to create custom switch

$
0
0

Hello,
As am new to this platform I have no idea how to create a custom switch with text on it like this

How to create custom entry

$
0
0

Hello,
as am new to this platform I have no idea how to create a custom entry like this with a label (field name) on the border of the entry

How to use a grid in a scrollview in Xamarin.Forms?

$
0
0

Hi, I need to create a Grid in a scroll view. I created a version for the portrait and landscape mode. It should be scrollable in the portrait mode, but not in the landscape mode. The problem is if I add the scrollview it doesn't look like expected in landscape mode. Here is a gif with an example:

Here is my xaml code:

    <ContentPage.Content>
        <ScrollView>
            <Grid x:Name="myLayout" ColumnSpacing="0" RowSpacing="0">
                <BoxView x:Name="box1" BackgroundColor="Green"/>
                <BoxView x:Name="box2" BackgroundColor="Yellow"/>
                <BoxView x:Name="box3" BackgroundColor="Blue"/>
                <BoxView x:Name="box4" BackgroundColor="Gray"/>
            </Grid>
        </ScrollView>
    </ContentPage.Content>

And here the C# code, which handling the Orientation change:

    public partial class myPage : ContentPage
    {
        private double width,
                       height;

        public myPage()
        {
            InitializeComponent();

            width = this.Width;
            height = this.Height;
        }

        protected override void OnSizeAllocated(double width, double height)
        {
            base.OnSizeAllocated(width, height);

            if (this.width != width || this.height != height)
            {
                this.width = width;
                this.height = height;

                UpdateLayout();
            }
        }

        private void UpdateLayout()
        {
            myLayout.ColumnDefinitions.Clear();
            myLayout.RowDefinitions.Clear();
            myLayout.Children.Clear();

            if (width > height) SetLandscapeLayout();
            else SetPortraitLayout();
        }

        private void SetPortraitLayout()
        {
            myLayout.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
            myLayout.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
            myLayout.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
            myLayout.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });

            myLayout.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Auto) });
            myLayout.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });

            myLayout.Children.Add(view: box1, left: 0, top: 0);
            box1.HeightRequest = box1.Width;
            myLayout.Children.Add(view: box2, left: 1, top: 0);
            box2.HeightRequest = box2.Width;
            myLayout.Children.Add(view: box3, left: 2, top: 0);
            box3.HeightRequest = box3.Width;
            myLayout.Children.Add(view: box4, left: 3, top: 0);
            box4.HeightRequest = box4.Width;
        }

        private void SetLandscapeLayout()
        {
            myLayout.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
            myLayout.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
            myLayout.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
            myLayout.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });

            myLayout.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) });
            myLayout.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });

            myLayout.Children.Add(view: box1, left: 0, top: 0);
            box1.WidthRequest = box1.Height;
            myLayout.Children.Add(view: box2, left: 0, top: 1);
            box2.WidthRequest = box2.Height;
            myLayout.Children.Add(view: box3, left: 0, top: 2);
            box3.WidthRequest = box3.Height;
            myLayout.Children.Add(view: box4, left: 0, top: 3);
            box4.WidthRequest = box4.Height;
        }
    }

Thanks in advance.


Animating scrollview items appear & disappear.

$
0
0

I'm trying to create some animations inside a CollectionView. This is when the items are added or when the items are removed.
I have looked for some animations tutorials however I have not seen an example being applied to the items inside the collectionview, how could I animate them?

Thanks!

How can I add an item (just 1) from a list into another list?

$
0
0

Once I initialized two lists (a, b), I'd like to add one item from list "a" into "b" whenever I press a button. Note, JUST 1 and not the whole list. With my current code, my list "b" keeps being null.

This is what I've tried

//Initialize / declare lists

public List a;

    List<string> b= new List<string>();

// List a
a = new List()
{
new Question() { QuestionText="", Answer=false } ,
new Question() { QuestionText="", Answer=false },
new Question() { QuestionText="", Answer=true },
new Question() { QuestionText="", Answer=false },
new Question() { QuestionText="" , Answer=true },
new Question() { QuestionText="", Answer=false },
new Question() { QuestionText="", Answer=false },

        };

//Add method---this is what I tried for adding items
if (_currentAnswerValue == false)
score++;

            else
            {
                b.Add(QuestionText.ToString());

True/False Quiz: how to show incorrect answers at the end of quiz

$
0
0

I am working on a True/False Quiz. Here is part of my code for setting the questions in the quiz and also the "ResultsPage". The ResultsPage, however, only indicates the score (i.e. "5 out of 14"), and I'd like it to indicate which questions were the "errors". How best to go about this? Thanks.

QuizPageModel.cs
questions = new List()
{
new Question() { QuestionText="1=2", Answer=false } ,

            new Question() { QuestionText="2=5", Answer=false },
            new Question() { QuestionText="5=2+3", Answer=true},

            new Question() { 4*4=8", Answer=false },

        };

//True/False

        AnsweredTrue = new Command(async () =>
        {
        Debug.WriteLine("True button pressed");

            // check if answer is correct
            if (_currentAnswerValue == true)

                score++;
            AnsweredFalse = new Command(async () =>
        {
        Debug.WriteLine("False button pressed");



        // check if answer is correct
        if (_currentAnswerValue == false)
                score++;

        else
            {


            }

ResultsPage.xaml

ResultsPage.xaml.cs
public ResultsPage(int score, int total)
{
InitializeComponent();

    ScoreText.Text = $"{score} out of {total}";
}

Android.Views.InflateException: 'Binary XML file line #2: Binary XML file line #2

$
0
0

I am trying to follow the Maps API guide, but I've had this error for a while.
This is my xml code

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gmap"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class = "com.google.android.gms.maps.MapFragment"
    />
</LinearLayout>

And this is my main activity

    [Activity(Label = "@string/app_name", MainLauncher = true)]
    public class MainActivity : AppCompatActivity, IOnMapReadyCallback
    {
 protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);
            var mapFragment = (MapFragment)FragmentManager.FindFragmentById(Resource.Id.gmap);
            mapFragment.GetMapAsync(this);
        }
        public void OnMapReady(GoogleMap map)
        {
            // Do something with the map, i.e. add markers, move to a specific location, etc.
            // Set up a normal map
            map.MapType = GoogleMap.MapTypeHybrid;
            // Map settings
            map.UiSettings.ZoomControlsEnabled = true;
            map.UiSettings.CompassEnabled = true;
        }
    }
}

I have already tried switching between class and android:name on my xml, I have also tried using var mapFragment = (SupportMapFragment)SupportFragmentManager.FindFragmentById(Resource.Id.gmap); in my main activity.

display selected item from listview

$
0
0

I want to review the selected item from listview, provided that when filtering, the selected visible element is selected

This code works well if the item is selected without filtering.
If the filtering process is complete, it will display elements that are not visible in the same position

//example

listview all data

good
bad
excellent

select item 1 display " bad"

//after filter

bad

select item 0 display "good"

`
private List itemlist;

listviewa.ItemClick += Listnames_ItemClick;
private void Listnames_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
{

        string itemcheck = itemlist[e.Position].ToString();
        Toast.MakeText(Activity, itemcheck, ToastLength.Short).Show();
    }

//filter
void _SV_QueryTextChange(object sender, Android.Support.V7.Widget.SearchView.QueryTextChangeEventArgs e)
{
_adapter.Filter.InvokeFilter(e.NewText);

    }

`

Xamarin is a really poor development experience

$
0
0

I recently started a new Xamarin Forms project in VS 2019. The idea of being able to create a cross platform mobile app using .NET sounded like an amazing idea, at least on paper.

In reality, this mature platform is still a pile of clunky trash. Connecting to the mac server feels like a team of new CS grads put it together. It constantly has issues whereby it can't install updates on the mac automatically, just fails to connect other times etc.

Once finally connected through restarting VS a couple times, opening a xib file just hangs for 2 mins and then comes up with an error.

Sigh. It drives me absolutely nuts how a company with the best and brightest can excel so much with Office and other software solutions, but completely suck at others.

Unfortunately none of the other solutions for X platform app development are any good at all. Xcode is a UX pile of crap, Flutter is super cool except someone thought it would be a fantastic idea to use Dart -- an esoteric language. So annoying at the state of development for mobile right now. Maybe someday a billion dollar company will come by and make something that works well.

Is it possible to integrate the HERE Maps Android/iOS SDKs into a xam.forms project?

$
0
0

Hi =)

So I believe there are two previous discussions on this:

https://forums.xamarin.com/discussion/43630/xamarin-binding-for-here-maps-problem
https://forums.xamarin.com/discussion/102803/binding-libary-incompatibility-here-maps-sdk

Currently I'm using: SDK Version: 3.11.2.82 (Premium)

The Android SDK comes as an .AAR, after extracting the .JAR, creating a Android binding library, and removing classes throwing errors:

<metadata>
  <remove-node path="/api/package[@name='com.here.android.mpa.pde']/class[@name='PlatformDataItem']" />
  <remove-node path="/api/package[@name='com.here.android.mpa.pde']/class[@name='PlatformDataItemCollection']" />
  <remove-node path="/api/package[@name='com.here.android.mpa.pde']/class[@name='PlatformDataResult']" />
  <remove-node path="/api/package[@name='com.here.android.mpa.search']/class[@name='DiscoveryRequest']" />
  <remove-node path="/api/package[@name='com.here.android.mpa.search']/class[@name='TextSuggestionRequest']" />
  <remove-node path="/api/package[@name='com.here.android.mpa.search']/class[@name='TextAutoSuggestionRequest']" />
  <remove-node path="/api/package[@name='com.here.android.mpa.search']/class[@name='GeocodeRequest']" />
  <remove-node path="/api/package[@name='com.here.android.mpa.search']/class[@name='GeocodeRequest2']" />
  <remove-node path="/api/package[@name='com.here.android.mpa.search']/class[@name='ImageMedia']" />
  <remove-node path="/api/package[@name='com.here.android.mpa.search']/class[@name='PlaceRequest']" />
  <remove-node path="/api/package[@name='com.here.android.mpa.mapping']/class[@name='MapOffScreenRenderer']" />
  <remove-node path="/api/package[@name='com.here.android.mpa.streetlevel']/class[@name='StreetLevelModel']" />
  <remove-node path="/api/package[@name='com.here.android.mpa.streetlevel']/class[@name='StreetLevelOffScreenCapture']" />
  <remove-node path="/api/package[@name='com.here.odnp.util']/class[@name='OdnpIOUtils']" />
  <remove-node path="/api/package[@name='com.here.odnp.util']/class[@name='AlarmTimer']" />
  <remove-node path="/api/package[@name='com.here.odnp.util']/class[@name='AssetCopyTask']" />
  <remove-node path="/api/package[@name='com.here.odnp.wifi']/class[@name='WifiFilterRx']" />
  <remove-node path="/api/package[@name='com.here.odnp.wifi']/class[@name='WifiFilterTimestamp']" />
  <remove-node path="/api/package[@name='com.here.odnp.posclient.pos']/class[@name='PositioningSession']" />
  <remove-node path="/api/package[@name='com.here.services.playback.internal.util']/class[@name='PlaybackReader']" />
  <remove-node path="/api/package[@name='com.here.services.radiomap.internal.util']/class[@name='IRadioMapManager']" />
  <remove-node path="/api/package[@name='com.here.services.radiomap.internal.util']/class[@name='RadioMapManager']" />
  <remove-node path="/api/package[@name='com.here.services.radiomap.internal']/class[@name='IRadioMapManager']" />
  <remove-node path="/api/package[@name='com.here.services.radiomap.internal']/class[@name='RadioMapManager']" />
  <remove-node path="/api/package[@name='com.nokia.maps']/class[@name='StringNativeMap']" />
  <remove-node path="/api/package[@name='com.nokia.maps']/class[@name='StringNativeVector']" />
  <remove-node path="/api/package[@name='com.nokia.maps']/class[@name='NavigationManagerImpl']" />
  <remove-node path="/api/package[@name='com.nokia.maps']/class[@name='StringNativeVector']" />
  <remove-node path="/api/package[@name='com.nokia.maps']/class[@name='MapImpl']" />
  <remove-node path="/api/package[@name='com.here.sdk.analytics']/class[@name='HEREAnalytics']" />
</metadata>

I got my dll, but have a very good feeling it won't work =)

The iOS SDK comes as a NMAKit.framework, is there even a remote chance of finding a way to reference this in Xamarin?

Has anyone had any recent success with implementing HERE Maps in Xamarin?


Which security model does System.IO use when writing files on iOS and Android?

$
0
0

In short, which file protection level is used when files are created through System.IO?

For example, iOS by default uses a level of encryption when saving through native API.
https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy/encrypting_your_app_s_files

Does Xamarin/Mono use this default? I'm not aware of similar built-in functionality for Android, but what about on that platform?

Not sure where to find this type of information myself.

Thanks in advance,

shell customization

$
0
0

Hello Microsoft

I have a question. I have this
with the logo on the center and the bell icon on the side.

So my question is the following: I also have this , witch is my home screen, this is contained within a shell

Now for the real question, how can I put the text in the middle with the bell icon in the header of the shell? or do I put in in the page


This is my xaml for the page

Setting Initial Value to Picker MVVM Xamarin Sets ObservableCollection to NULL

$
0
0

I'm trying to set the initalvalue of a picker in a a list view. However, when I have tried to do this through many methods, nothing is set and the underlying source (the property IngredientName for each element of downloadedRecipeIngredients) (the array is initially correct prior to being stored in teh ObserverableCollection) is set to null. This can be seen when utilizing breakpoints in the for loop which get data and stores it to DownloadedRecipeIngredients.

The picker is populated with a list of strings and the choices are displayed correctly when you click on the picker. This list is stored in _listIngredients. These are the possible ingredients one can utilize with a given recipe.

I'm trying to set the initial value to IngredientName which is also a string.

Please help. Thanks.

The picker in question is named 'pickerIngredientancestor'

XAML

<ContentPage.Content>
    <StackLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">

        <ListView HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" ItemsSource="{Binding downloadedRecipeIngredients}">  <!--SelectedItem="{Binding SelectedItem}"-->
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Orientation="Horizontal">
                            <Picker x:Name="pickerIngredientancestor" HorizontalOptions = "StartAndExpand" ItemsSource="{Binding listIngredients, Source={RelativeSource AncestorType={x:Type viewModel:testPageViewModel}}}" SelectedItem="{Binding IngredientName}" WidthRequest="100"/>
                            <Entry Text="{Binding Comments}" VerticalOptions="CenterAndExpand" HorizontalOptions="StartAndExpand" />
                            <Label Text="Clickable Label" VerticalOptions="CenterAndExpand" HorizontalOptions="EndAndExpand">
                                <Label.GestureRecognizers>
                                    <TapGestureRecognizer Command="{Binding Path=BindingContext.btnPress, Source={x:Reference Page}}" CommandParameter="{Binding .}" />
                                </Label.GestureRecognizers>
                            </Label>
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>
</ContentPage.Content>

VIEW MODEL

public class testPageViewModel : BaseViewModel
{
    ObservableCollection<clRecipeIngredient> _downloadedRecipeIngredients = new ObservableCollection<clRecipeIngredient>();
    public ObservableCollection<clRecipeIngredient> downloadedRecipeIngredients
    { 
        get { return _downloadedRecipeIngredients; } 
        set 
        {
            _downloadedRecipeIngredients = value;
            OnPropertyChanged();
        } 
    }

    ObservableCollection<string> _listIngredients = new ObservableCollection<string>();
    public ObservableCollection<string> listIngredients { get { return _listIngredients; } }

    private clRecipeDataBase recipeDataBase;

    public testPageViewModel()
    {
        recipeDataBase = new clRecipeDataBase();

        getData();
    }

    async void getData()
    {
        //PICKER INGREDIENT DATA
        clIngredient[] tmp = await recipeDataBase.getIngredientData();
        //picker.ItemsSource = null;

        for (int i = 0; i < tmp.Length; i++)
        {
            _listIngredients.Add(tmp[i].IngredientName);
        }

        clRecipeIngredient[] arr = await recipeDataBase.getRecipeIngredientsDataByRecipeID(310); //HARDCODED TO CRISPY PIZZA RECIPE
        clRecipeIngredient tmp1;
        for (int i = 0; i < arr.Length; i++)
        {
            _downloadedRecipeIngredients.Add(arr[i]);
        }


    }

Shell: How to add menu items from code?

$
0
0

I'd like to programmatically provide menu items to my Shell.
There seems to be a mechanism Shell.Items.Add(ShellItem), but the subclass MenuShellItem is protected.
Is there another way I can add menu items to my Shell?

How can I record the screen of my device ?

$
0
0

I was testing MediaRecorder but after the start () method when seeing the generated video, the whole black screen is shown as if nothing was recorded. I use xamarin native for android

Viewing all 204402 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>