我正在关注这个Android教程
为了在教程中的RecyclerView.Adapter(实例GreenAdapter)中处理项目点击,我们创建了一个接口来接收来自活动的onclick消息。然后,我们通过覆盖onListItemClick来实现MainActivity中的接口。代码如下所示
public class GreenAdapter extends RecyclerView.Adapter<GreenAdapter.NumberViewHolder> {
public interface ListItemClickListener {
void onListItemClick(int clickedItemIndex);
}
final private ListItemClickListener mOnClickListener;
public GreenAdapter(int numberOfItems, ListItemClickListener listener) {
mNumberItems = numberOfItems;
mOnClickListener = listener;
viewHolderCount = 0;
}}
和活动
public class MainActivity extends AppCompatActivity implements GreenAdapter.ListItemClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAdapter = new GreenAdapter(NUM_LIST_ITEMS, this);}
this 指的是活动实例,但GreenAdapter构造函数采用ListItemClickListener类型。
这怎么可能。如何将活动作为ListItemClickListener类型传递/转换。
答案 0 :(得分:0)
此处MainActivity
表示您的ListItemClickListener
已实施class Program
{
static void main(string[] args)
{
ObjectManager objects = new ObjectManager();
objects.AddObject(objects.CreateObject("object 1"));
objects.AddObject(objects.CreateObject("object 2"));
objects.AddObject(objects.CreateObject("object 3"));
}
}
class ObjectManager
{
public List<Object> Objects { get; set; }
public ObjectManager()
{
Objects = new List<Object>();
}
public Object CreateObject(string name)
{
Object o = new Object(name);
return o;
}
public void AddObject(Object o)
{
Objects.Add(o);
}
}
。请阅读官方文档中的Android文档。