2017-10-14 1 views
1

私は問題があります。私はボタンをクリックすると、代わりにアプリはリストで他のページに移動し、アプリはクラッシュしています。パフォーマンス向上のためにタスクを追加しようとしましたが、エラーはまだあります。私はそのコードに何が問題なのか分かりません。私にとってこれはうまくいくはずです。Xamarinアプリケーションがメインスレッドであまりにも多くの作業をしている可能性があります。Android

編集:私はNavigation.PushAsync(新しいSrchPage())を待っています。それでも動作しません。以下、私はこれらのエラーを得た。

最初のエラー:

アプリケーションはAndroidのメインスレッド上であまりにも多くの仕事をやっても

2番目のエラー:

public SrchPage() 
{ 
    InitializeComponent(); 
    Task.Factory.StartNew(() => Zrob());  
} 

    private void Zrob() 
    { 
     Task.Factory.StartNew(() => 
     { 
     ListaNazw.ItemsSource = new List<Listyy> 
      { 
      new Listyy { nazwa = "tekst", opis="tekst" , ema = 1 }, 
      new Listyy { nazwa = "tekst", opis = "tekst", ema = 2 }, 
      new Listyy { nazwa = "tekst", opis = "tekst", ema = 3 }, 
      new Listyy { nazwa = "tekst", opis = "tekst", ema = 4 }, 
      }; 
     }); 
    } 

async private void ListaNazw_ItemSelected(object sender, SelectedItemChangedEventArgs e) 
{ 
    if (e.SelectedItem == null) 
       return; 

    var klik = e.SelectedItem as Listyy; 
    await Navigation.PushAsync(new AfterSearch(klik)); 
    ListaNazw.SelectedItem = null; 
} 

ボタン:リストと

UNHANDLED EXCEPTION: 
10-15 10:13:46.781 I/MonoDroid(27288): 
Xamarin.Forms.Xaml.XamlParseException: No embeddedresource found for 
Ap.SrchPage 
10-15 10:13:46.781 I/MonoDroid(27288): at 
Xamarin.Forms.Xaml.XamlLoader.Load (System.Object view, System.Type 
callingType) [0x0000f] in 
C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Xaml\XamlLoader.cs:67 
10-15 10:13:46.781 I/MonoDroid(27288): at 
Xamarin.Forms.Xaml.Extensions.LoadFromXaml[TXaml] (TXaml view, System.Type 
callingType) [0x00000] in 
C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Xaml\ViewExtensions.cs:36 
10-15 10:13:46.781 I/MonoDroid(27288): at Ap.SrchPage.InitializeComponent 
() [0x00001] in Z:\mem\Ap\Ap\Ap\obj\Debug\Ap.Klasy.SrchPage.xaml.g.cs:22 
10-15 10:13:46.781 I/MonoDroid(27288): at Ap.SrchPage..ctor() [0x00008] in 
Z:\mem\Ap\Ap\Ap\Klasy\SrchPage.xaml.cs:19 
10-15 10:13:46.781 I/MonoDroid(27288): at Ap.MainPage+ 
<Button_Clicked_1>d__6.MoveNext() [0x0000f] in 
Z:\mem\Ap\Ap\Ap\MainPage.xaml.cs:110 
10-15 10:13:46.781 I/MonoDroid(27288): --- End of stack trace from previous 
location where exception was thrown --- 
10-15 10:13:46.781 I/MonoDroid(27288): at 
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [0x0000c] in 
<183b200ee49746d48fc781625979428e>:0 
10-15 10:13:46.781 I/MonoDroid(27288): at 
System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c. 
<ThrowAsync>b__6_0 (System.Object state) [0x00000] in 
<183b200ee49746d48fc781625979428e>:0 
10-15 10:13:46.781 I/MonoDroid(27288): at Android.App.SyncContext+ 
<>c__DisplayClass2_0.<Post>b__0() [0x00000] in 
<71828dd8fb5f4508815e23d6996c45c2>:0 
10-15 10:13:46.781 I/MonoDroid(27288): at 
Java.Lang.Thread+RunnableImplementor.Run() [0x00008] in 
<71828dd8fb5f4508815e23d6996c45c2>:0 
10-15 10:13:46.781 I/MonoDroid(27288): at Java.Lang.IRunnableInvoker.n_Run 
(System.IntPtr jnienv, System.IntPtr native__this) [0x00008] in 
<71828dd8fb5f4508815e23d6996c45c2>:0 
10-15 10:13:46.781 I/MonoDroid(27288): at (wrapper dynamic-method) 
System.Object:a8baa1c1-4db1-4761-95e4-cc368e19ffe1 (intptr,intptr) 
10-15 10:13:46.801 W/art  (27288): JNI RegisterNativeMethods: attempt to 
register 0 native methods for android.runtime.JavaProxyThrowable 

ページ:

async private void Button_Clicked_1(object sender, EventArgs e) 
{ 
    await Navigation.PushAsync(new SrchPage()); 
} 

XAML:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
     xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
     x:Class="Ap.SrchPage " 
     BackgroundImage="@drawable/main2_rc3.png" 
     NavigationPage.HasNavigationBar="False"> 


<RelativeLayout> 
    <ListView x:Name="ListaNazw" SeparatorColor="#3d122c" HasUnevenRows="True" 
       RelativeLayout.HeightConstraint="{ConstraintExpression Property=Height,Factor=1,Type=RelativeToParent}" 
       RelativeLayout.WidthConstraint="{ConstraintExpression Property=Width,Factor=1,Type=RelativeToParent}" ItemSelected="ListaNazw_ItemSelected" > 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <ViewCell> 
        <StackLayout Orientation="Horizontal" Padding="5" BackgroundColor="#90FFFFFF"> 
         <StackLayout HorizontalOptions="StartAndExpand"> 
          <Label Text="{Binding nazwa}" TextColor="#680345" FontSize="17"/> 
          <Label Text="{Binding opis}" TextColor="#30032a" /> 
         </StackLayout> 
        </StackLayout> 
       </ViewCell> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 
</RelativeLayout> 
</ContentPage> 
+0

この一般的な警告メッセージの診断については、私のブログをご覧ください:https://blog.xamarin.com/tips-for-creating-a-smooth-and-fluid-android-ui/ –

答えて

1

あなたのXaml x:classには余分なスペースがあります。

x:Class="Ap.SrchPage "

余分なスペースを取り除き、ビルドを削除し、すべてのbinおよびobjフォルダを削除します。それから、もう一度再構築してください。

+0

ありがとう!!私は見なかった –

0

はこれを使用して、あなたのコードが正常に動作します。

await Navigation.PushModalAsync(new SrchPage()); 
+0

まだ動作していません –

関連する問題

 関連する問題