這是我第一次接觸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