2016-05-18 3 views
0

В настоящее время моя проблема в том, что я не могу изменить активность ошибка «System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта»ListView OnClick кнопки (Android Xamarin)

Моя вторая проблема является метод что делает ListView (потому что у меня есть связанный с ним viewpager, на моем drawerLayout). Делая это, у меня есть только один идентификатор кнопки, который в итоге добавлен с двумя или более элементами «Добавить, Удалить и т. Д.». Так что даже если я делаю событие onclick. Обе кнопки в списке отображают ту же активность. Поэтому мне нужно, чтобы элементы, которые я добавил, были разделены и могли выполнять разные функции.

Моя деятельность и заявления (не полный код)

public class HomepageActivity : FragmentActivity 
    { 
     DrawerLayout mDrawerLayout; 
     List<string> mLeftItems1 = new List<string>(); 
     ArrayAdapter mLeftAdapter1, mLeftAdapter2; 
     ListView mListView; 

mLeftItems1.Add("Add"); 
mLeftItems1.Add("Delete"); 
mLeftAdapter1 = new ArrayAdapter(this, Resource.Layout.layout1, Resource.Id.button1, mLeftItems1); 
mListView.Adapter = mLeftAdapter1; 

button1.Click += delegate 
{ 
StartActivity(typeof(Login)); 
}; 

Мой axml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:minWidth="25px" 
    android:minHeight="25px"> 
    <Button 
     android:text="Button" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/button1" 
     android:textColor="@android:color/background_dark" 
     android:textSize="35dp" 
     android:clickable="true" /> 
</LinearLayout> 
+0

Без трассировки стека это немного догадка относительно того, что экземпляр является пустым, но когда создается экземпляр 'mListView'? –

+0

вы должны использовать разные ID кнопки. – Freddy

+0

@MarkLarter Экземпляр mListView создается в открытом классе. Я редактировал свой пост и добавил то, что я объявил. Проблемы возникают только тогда, когда я добавил инструкцию «StartActivity» –

ответ

0

mListView не будучи инстанцирован, только декларировала. Поэтому, когда назначение адаптера выполняется, mListView имеет значение NULL.

Попробуйте это:

var mListView = new ListView(); 
+0

Пробовал это, в конечном итоге устранить проблему, используя этот два утверждения. var mListView = новый ListView (это); var button1 = new Button (this); Не слишком уверен, что такое context.context внутри параметров. Поэтому я просто использовал «это». К сожалению, моя кнопка не работает. –

Смежные вопросы