2016-11-28 4 views
0
‚Android.Widget.Button‘ eingeben

Dieser Fehler nicht angezeigt, bis ich hinzugefügtXamarin System.InvalidCastException: Kann nicht Instanz vom Typ ‚Android.Widget.EditText‘ konvertieren

private void ExList_ItemClick(object sender, AdapterView.ItemClickEventArgs e) 
    { 
     ExList.RemoveViewAt(e.Position); 
     Openers.Remove(e.Position.ToString()); 
     adapter.NotifyDataSetChanged(); 
    } 

Der vollständige Code einfach nimmt Eingabetext aus der Itext-Textansicht und fügt ihn den Öffnern hinzu, die zur ExList-Listenansicht gehen. Der Adapter ist ein einfacher. Itext.text = ""; Highlights mit dem Debugger, also nehme ich an, dass es bei dieser Zeile aufhört. heres den Code.

public class MainActivity : Activity 
    { 

     public List<string> Openers = new List<string>(); 

     Button AButton; 
     TextView Itext; 
     ListView ExList; 
     Button SettingsB; 
     ArrayAdapter adapter; 
     public OpenersView adap;//Custom adapter class 


     protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 

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



      SettingsB = FindViewById<Button>(Resource.Id.SettingsB); 
      AButton = FindViewById<Button>(Resource.Id.AddB); 
      Itext = FindViewById<TextView>(Resource.Id.Itext); 
      ExList = FindViewById<ListView>(Resource.Id.ExList); 

      //adap = new OpenersView(this, Openers); //Custom adapter 
      adapter = new ArrayAdapter(this,Android.Resource.Layout.SimpleListItem1, Openers);//Simple adapter 
      ExList.Adapter = adapter; 


      AButton.Click += (object sender, EventArgs e) => 
      { 

       if (Itext.Text.Length > 8) { Openers.Add(Itext.Text); } 
       adap.NotifyDataSetChanged(); 
       Itext.Text = ""; 
       //I declare the listview here so it will update every click of the button. 
      }; 

      ExList.ItemClick += ExList_ItemClick; 



     } 

     private void ExList_ItemClick(object sender, AdapterView.ItemClickEventArgs e) 
     { 
      ExList.RemoveViewAt(e.Position); 
      Openers.Remove(e.Position.ToString()); 
      adapter.NotifyDataSetChanged(); 
     } 


    } 

} 
+0

können Sie Ihre 'Main.axml' Datei schreiben ?? – Ironman

+1

Ja. Das Problem scheint in Ihrem Designer zu sein. Vielleicht hatten Sie einen Text zum Bearbeiten und in Ihrem Hauptcode versuchen Sie, ihn in eine Schaltfläche umzuwandeln. – Ogbe

Antwort

0

Überprüfen Sie Ihre Schaltfläche in XML-Code. stellen Sie sicher, dass Resource.Id.SettingsB und Resource.Id.AddB Schaltflächen sind.

wenn seine editText Änderung wie diese

 SettingsB = FindViewById<Edittext>(Resource.Id.SettingsB); //check xml 
     AButton = FindViewById<Edittext>(Resource.Id.AddB);   //check xml 
+0

Alle Typen sind korrekt. – Coderun

Verwandte Themen