java - 从自定义 OnClickListener 调用函数

标签 java android function onclicklistener

我有Main_Activity.class 文件。我在那里定义了一个自定义函数 myFunction() 。在此函数中,我想调用外部定义的自定义 OnClickListener ,它将递归调用该函数。

Main_Activity中,按钮定义为

private Button button;
.
.
button = (Button)findViewById(R.id.button);
.
.

我的myFunction()是在Main_Activity.class内部定义的。在此函数内定义了按钮的 OnClickListener。通过这个 OnClickListener,我可以轻松调用 myFunction()

private void myFunction(){
  button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                                 myFunction();
            }
        });
}

但我想为按钮定义一个自定义 MyClickListenerClass 并从该外部类调用 myFunction()。

这怎么可能?

最佳答案

试试这个,

Activity :

 public class Main_Activity extends Activity
{

    Button button;
    MainActivity act;
    MyClickListener listener;

    @Override
    protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            button = (Button) findViewById(R.id.button1);
            listener = new MyClickListener(this);
            myFunction();
        }

    public void myFunction()
        {
            button.setOnClickListener(listener);
            Log.i("Fun clicked from", "sdfnd");
        }
}

和类别:

public class MyClickListener implements OnClickListener 
{
    MainActivity act;
      public MyClickListener(MainActivity act) { 
         this.act=act;

      }
    @Override
    public void onClick(View v)
        {
            act.myFunction();

        } 
}

关于java - 从自定义 OnClickListener 调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17114396/

相关文章:

java - 更新adt后出错

Javascript 函数未正常运行

java - Firebase 推送通知 `deprecatedEndPoint` 错误

android - 使用 Eclipse ADT 编辑 Android 布局

function - 为什么我收到此错误消息 “UnboundLocalError: local variable ' sigma_opt在分配前被引用”

python - 为什么我的素描课画的是 sec,而不是 cosec 或 cot?

java - Spring Mockito TestNG - 模拟在测试中持续存在

java - 为什么我无法通过 obj-c 将消息发送到我的 java 服务器?

java - 为什么更改时 JComboBox 上的 itemStateChanged 会被调用两次?

java - Android Json解析为Arraylist