【问题标题】:ListView onClick Button (Android Xamarin)ListView onClick 按钮 (Android Xamarin)
【发布时间】:2016-05-18 16:11:25
【问题描述】:

我目前的问题是我无法更改活动,错误是“System.NullReferenceException:对象引用未设置为对象的实例”

我的第二个问题是制作 ListView 的方法(因为我有一个与之链接的 viewpager,在我的抽屉布局上)。通过这样做,我只有一个按钮 ID,最终添加了 2 个或更多项目“添加、删除等”。所以即使我做了一个 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>

【问题讨论】:

  • 如果没有堆栈跟踪,就有点猜测什么实例为空,但mListView 实例是在哪里创建的?
  • 您必须使用不同的按钮 ID。
  • @MarkLarter mListView 实例是在公共类中创建的。我编辑了我的帖子并添加了我声明的内容。只有当我添加语句“StartActivity”时才会出现问题
  • @Freddy 但是通过添加一个按钮(因此多了一个按钮 ID)。列表视图的外观看起来就像两个按钮在一起没有分隔线。你能推荐我一个添加两个不同buttonID的好方法吗?

标签: c# android listview button xamarin


【解决方案1】:

mListView 没有被实例化,只是被声明了。所以当Adapter赋值执行时,mListView为null。

试试这个:

var mListView = new ListView();

【讨论】:

  • 试过了,最后用这两条语句解决了问题。 var mListView = new ListView(this); var button1 = new Button(this);虽然不太确定参数中的 context.context 是什么。所以我只用了“这个”。可悲的是,我的按钮点击也不起作用。
猜你喜欢
  • 2021-04-26
  • 1970-01-01
  • 1970-01-01
  • 2012-08-28
  • 1970-01-01
  • 2016-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多