在Android中点击监听器有更清晰的方法吗?

时间:2012-05-07 02:56:46

标签: android onitemclicklistener android-event

所以我在Android上开发了很长一段时间,我本身就是一个.Net开发人员。我面临的问题是我的代码看起来很糟糕,我真的不喜欢Java \ Android不确定哪种方式,使点击事件出现在代码中。在下面的这个例子中,我有一个带有点击事件的列表视图。

list_view.setOnItemClickListener(new OnItemClickListener() {

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

        }
    });

在.Net中我会在我的Initialize Components方法中设置click事件,然后在我的主代码页中实现它。如何告诉android在我的代码中使用下面的单击事件方法而不是在那里引用它。也许是这样的?

list_view.setOnItemClickListener(onItemClick());

稍后在我的代码页中。

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

    }
});

总而言之,我只是在寻找一种更清晰的方法来将我的事件连接到我的控件,以便我可以更好地阅读代码。当最初是.Net开发人员时,转向Java和Android是一个艰难的过程。

谢谢!

修改

感谢下面的答案,我在这里发布了我的作品。

list_view.setOnItemClickListener(list_view_onItemClickListener);


//below in my code
private OnItemClickListener  list_view_onItemClickListener = new OnItemClickListener (){
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        // TODO Auto-generated method stub

    }

};

2 个答案:

答案 0 :(得分:3)

你可以尝试this

答案 1 :(得分:1)

您可能喜欢或不喜欢但我认为最适合我的方法是例如这是您的layout.xml

<Button1 android:id="@+id/btn1"  android:onClick="btnHandle">

</Button1>

<Button2 android:id="@+id/btn2 android:onClick="btnHandle">

</Button2>

并在activity.Java

public void btnHandle(View v)
{
  if(v.getId()==R.id.btn1){


}else if(v.getId()==R.id.btn2){

}

通过这种方法,您不必实现任何接口,即使您将Button视图更改为ImageView,您仍然不必在代码中执行任何操作。但是如果是setOnClickListener,您必须将instance variable类型从Button更改为ImageView。     }