繁体   English   中英

Android在MainActivity中调用自定义适配器方法

[英]Android Calling Custom Adapter Methods within MainActivity

下面的代码存在于我的主要活动中。 我想知道它们是否是一种方法,可以使用传递到gridview.setAdapter()函数中的GridAdapter实例来调用方法。

GridAdapter负责用图像填充gridview。 单击时,我想获得它的位置以及GridAdapter中的一些数据。

    // create a new GridView object
    GridView gridview = this.findViewById(R.id.gridView);
    gridview.setAdapter(new GridAdapter(this));
    gridview.setOnItemClickListener(new AdapterView.OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> parent, View v,
                                int position, long id)
        {
            thisGridAdapter.someMethod(position);  //what I want to do
            Log.d("gridView", String.valueOf(position));
            TextView tv = findViewById(R.id.textView);
            tv.setText(String.valueOf(position));
        }
    });

将其分配给变量?

final GridAdapter adapter = new GridAdapter(this);
GridView gridView = findViewById(R.id.gridView);
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
        adapter.someMethod(position);
    }
});

或者,使用GridView#getAdapter()方法并将其GridView#getAdapter()为您的适配器类:

final GridView gridView = findViewById(R.id.gridView);
gridView.setAdapter(new GridAdapter(this));
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
        ((GridAdapter) gridView.getAdapter).someMethod(position);
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM