1

我正在Android中开发一个示例应用程序并遇到以下代码,我只是想知道使用此行时使用了Java的哪一部分,OOPS概念,有人可以详细解释这种声明吗?为什么它被这样声明

mainlistview.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {
        // TODO Auto-generated method stub

    } }); 
4

4 回答 4

3

这称为匿名类,在此示例中用作观察者模式的一部分。

于 2013-11-01T16:07:43.153 回答
0

除了“米特”所说的,

这个

mainlistview.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // TODO Auto-generated method stub

        } });

也可以写成

 mainlistview.setOnItemClickListener(this);

 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {

/// do the stuff for item click

}
于 2013-11-01T16:16:57.457 回答
0

看看观察者和命令模式。这些模式可以帮助您理解这个概念。

于 2013-11-01T16:15:57.293 回答
0

OnItemClickListener是一个接口。ListView 将保存您提供的接口实现(您的new OnItemClick...)。当 ListView 检测到用户单击项目时,它将调用您提供的回调(您的实现)通过mOnItemClickCallback.onItemClick(params...)

于 2013-11-01T16:16:42.493 回答