2016-11-28 119 views
0

这个错误并没有出现,直到我说Xamarin System.InvalidCastException:无法转换类型“Android.Widget.EditText”的情况下键入“Android.Widget.Button”

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

完整的代码只是从Itext textview获取输入文本并将其添加到打开ExList Listview的Openers。该适配器是一个简单的。 Itext.text =“”;突出与调试器,所以我认为它停在那条线。 继承人的代码。

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

其EDITTEXT改变你可以发表你的'Main.axml'文件? – Ironman

+1

是的。这个问题似乎出现在你的设计师身上。你可能有一个编辑文本,并在你的主代码中试图将它转换为一个按钮。 – Ogbe

回答

0

在xml代码中检查您的按钮。 确保Resource.Id.SettingsB和Resource.Id.AddB是按钮。

如果这样

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

所有类型都是正确的。 – Coderun

相关问题