通常我们使用
adapter = new CustomArrayAdapter(this, R.layout.feed_items, R.id.label, feed_products_list);
但是如果我们在 setOnScrollListener 方法或类似的方法中,它不会允许“this”作为参数,那么我应该给出什么?我应该为我的自定义数组适配器添加一个新的构造函数,以 onScrollListener 作为参数吗?
通常我们使用
adapter = new CustomArrayAdapter(this, R.layout.feed_items, R.id.label, feed_products_list);
但是如果我们在 setOnScrollListener 方法或类似的方法中,它不会允许“this”作为参数,那么我应该给出什么?我应该为我的自定义数组适配器添加一个新的构造函数,以 onScrollListener 作为参数吗?
你可以用三样东西,
MyActivity.this
getApplicationContext()
this
明智地使用它们:)
在这种情况下,我通常会为活动类创建一个类级别的私有静态实例变量,并在 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