0

通常我们使用

adapter = new CustomArrayAdapter(this, R.layout.feed_items, R.id.label, feed_products_list);

但是如果我们在 setOnScrollListener 方法或类似的方法中,它不会允许“this”作为参数,那么我应该给出什么?我应该为我的自定义数组适配器添加一个新的构造函数,以 onScrollListener 作为参数吗?

4

2 回答 2

2

你可以用三样东西,

MyActivity.this
getApplicationContext()
this

明智地使用它们:)

于 2012-04-25T11:28:17.200 回答
1

在这种情况下,我通常会为活动类创建一个类级别的私有静态实例变量,并在 onCreate 中设置它。

然后该变量可以用作私有内部 onClickListeners 等内部的上下文

编辑以提供示例

Public class MyClass extends Activity {

private static MyClass instance;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    instance = this;
...
    mVideoView.setOnKeyListener(new View.OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            adapter = new CustomArrayAdapter(instance, R.layout.feed_items, R.id.label, feed_products_list);
....

ETC

于 2012-04-25T11:02:44.347 回答