所以我在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
}
};
答案 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
。
}