0

我有一个 ListView 和一个自定义适配器。我想更改 MyListAdapter 对象中的变量。这是我的自定义列表适配器中的一些代码:

public class MyListAdapter extends ArrayAdapter<Something> {
    ........
    ........
    private int myPosition= -1;
    ........

    public void setMyPosition(int pos) {
        myPosition = pos;
    }
................
}

现在在我的活动中:

MyListAdapter<Something> listAdapter = new MyListAdapter(this,
                R.layout.list_item_transaction, accounts);

listAdapter.setMyPosition(2);

但我无法访问setMyPosition方法。在 Eclipse 中,我得到ArrayAdapter 类型的方法 setMyPosition() 未定义

4

2 回答 2

1

将 listAdapter 声明为 MyListAdapter 类型。否则它不存在,如果父类上不存在子类的函数,Java 无法调用它。

这仅在 TransListAdapter 是子类或 MyListAdapter 时才有效。否则 setMyPosition 函数也不会存在。

于 2013-05-23T18:17:14.783 回答
0

试试这个 :

public class MyListAdapter<Something> extends ArrayAdapter<Something> {
    ........
    ........
    private int myPosition= -1;
    ........

    public void setMyPosition(int pos) {
        myPosition = pos;
    }
    ........
}
于 2013-05-23T18:20:04.907 回答