2

所以我已经在 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 方法中设置我的点击事件,然后在我的主代码页中实现它。我如何告诉 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

    }

};
4

2 回答 2

3

你可以试试这个

于 2012-05-07T02:58:46.917 回答
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. }

于 2012-05-07T04:40:51.533 回答