gpt4 book ai didi

java - 从外部类中提取点击监听器中的一些值

转载 作者:行者123 更新时间:2023-12-02 13:22:52 25 4
gpt4 key购买 nike

我有一个具有独特界面的自定义类

public class CalculatorDialog extends Dialog implements OnClickListener {
TextView mView;
CalculatorListener delegate = null;
public CalculatorDialog (Context context, CalculatorListener delegate) {
this.context = context;
this.delegate = delegate;
}
public interface CalculatorListener extends OnClickListener {
@Override void onClick(View v);
}
@Override void onCreate(Bundle bundle) {
...
mView = (TextView) findViewById(...);
findViewbyId(...Button...).setOnClickListener(delegate);
}
public String getViewText() {
mView.getText().toString();
}

创建 CalculatorDialog 的新对象时,我想实现自己的单击按钮操作,但我想从可见 TextView 中获取一些字符串。
所以在我的 MainActivity 中我尝试这样做:

CalculatorDialog dialogBox = new CalculatorDialog(context, new CalculatorDialog.CalculatorListener() {}
@Override
public void onClick(View v) {
String test = getViewText();
}
});

但正如你和我所认为的,它无法从那里访问。
这里的代码与我项目中的代码不是 1:1,但我认为它代表了我的需求。而且我是直接在 StackOverflow 上写的,所以它可能包含一些代码错误。
我怎样才能使用这个功能?

最佳答案

您应该更改您的 CalculatorListener

 public class CalculatorDialog extends Dialog implements OnClickListener {
TextView mView;
CalculatorListener delegate = null;
public CalculatorDialog (Context context, CalculatorListener delegate) {
this.context = context;
this.delegate = delegate;
}
public interface CalculatorListener{
void onClick(View v, String text);
}
@Override void onCreate(Bundle bundle) {
...
mView = (TextView) findViewById(...);
findViewbyId(...Button...).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
delegate.onClick(view, getViewText());
});
}
public String getViewText() {
mView.getText().toString();
}

CalculatorDialog dialogBox = new CalculatorDialog(context, new CalculatorDialog.CalculatorListener() {}
@Override
public void onClick(View v, String text) {
String test = text;
}

关于java - 从外部类中提取点击监听器中的一些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43507904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com