创建自定义OnClickListener

Adr*_*ndl 9 android onclicklistener

我有一个按钮的ArrayList,我的OCL需要知道我按下了哪个索引.计划是这样的:

MyOnClickListener onClickListener = new MyOnClickListener() {

        @Override
        public void onClick(View v) {

            Intent returnIntent = new Intent();
            returnIntent.putExtra("deleteAtIndex",idx);
            setResult(RESULT_OK, returnIntent);
            finish();

        }
    };
    for (int i =0;i<buttonList.size();i++) {
        buttonList.get(i).setText("Remove");
        buttonList.get(i).setOnClickListener(onClickListener);
    }
Run Code Online (Sandbox Code Playgroud)

我的OCL实现需要怎么样?

目前我有这个:

public class MyOnClickListener implements OnClickListener{

int index;

public MyOnClickListener(int index)
{
    this.index = index;
}

@Override
public void onClick(View arg0) {


}
Run Code Online (Sandbox Code Playgroud)

}

但是,我不确定我在OCL的构造函数中需要做什么,以及覆盖onClick函数.

ρяσ*_*я K 8

setOnClickListener按钮设置为:

buttonList.get(i).setOnClickListener(new MyOnClickListener(i));
Run Code Online (Sandbox Code Playgroud)

编辑:

我需要在myOCL中完成一项活动,我该怎么做?

完成按钮上的活动单击非活动类,您需要将活动上下文传递给自定义OnClickListener,如下所示:

buttonList.get(i).setOnClickListener(new MyOnClickListener(i, Your_Current_Activity.this));
Run Code Online (Sandbox Code Playgroud)

并将自定义OnClickListener类的构造函数更改为:

int index;
Context context; 
public MyOnClickListener(int index,Context context)
{
    this.index = index;
    this.context=context;
}

@Override
public void onClick(View arg0) {

    // now finish Activity as\
    context.finish();
      //  OR
        // ((Activity)context).finish();
}
Run Code Online (Sandbox Code Playgroud)