这是我第一次接触Xamarin Forms,所以可能(也可能是)我以错误的方式做事。访问MainActivity中的MainPage.xaml按钮
我有下面的XAML代码:
<ContentPage.Content>
<StackLayout VerticalOptions="FillAndExpand"
HorizontalOptions="FillAndExpand"
Orientation="Vertical"
Spacing="15" x:Name="stackLayout">
<Button x:Name="giveFeedback" Text="Start Recording" Clicked="OnStartRecording" />
<Button x:Name="stopRecording" Text="Stop Recording" IsEnabled="false" Clicked="OnStopRecording" />
<Label Text="Feedback:" />
<Editor x:Name="feedbackTranscription" VerticalOptions="FillAndExpand" >
</Editor>
<Button x:Name="saveFeedback" IsEnabled="false" Text="Save feedback" Clicked="OnSave" />
</StackLayout>
</ContentPage.Content>
我想访问设备的麦克风捕获音频。经过一番研究,我发现了Android的MediaRecorder类。问题是,我无法弄清楚如何从MainActivity类的MainPage.xaml访问元素。
MainActivity.cs
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
MediaRecorder _recorder;
Button _start;
Button _stop;
string path = "/sdcard/test.3gpp";
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
//_start.Click += delegate {
// _stop.Enabled = !_stop.Enabled;
// _start.Enabled = !_start.Enabled;
// _recorder.SetAudioSource(AudioSource.Mic);
// _recorder.SetOutputFormat(OutputFormat.ThreeGpp);
// _recorder.SetAudioEncoder(AudioEncoder.AmrNb);
// _recorder.SetOutputFile(path);
// _recorder.Prepare();
// _recorder.Start();
//};
//_stop.Click += delegate {
// _stop.Enabled = !_stop.Enabled;
// _recorder.Stop();
// _recorder.Reset();
//};
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
}
的情况下,我想结合GiveFeedback在和stopRecording到_start和MainActivity类别的_stop按钮。我举了一个FindById<Button>(Resource.Id.start)
的例子。我应该为我的按钮设置ID,并执行相同的操作吗?我应该使用MVVM吗? PS:现在,我只想学习Android的Xamarin表单。
如果您使用MVVM – Krishna