【发布时间】:2020-08-12 17:23:23
【问题描述】:
类似于this 帖子。拥有一个自定义视图(扩展 EditText),如果用户按下 END 键,该视图必须能够调用父 Activity 的 finish() 方法。
如何访问宿主活动的activity 对象,以便从自定义视图类中调用其finish() 方法?
public class SuppressInputEditText extends androidx.appcompat.widget.AppCompatEditText {
public SuppressInputEditText(Context context) {
super(context);
}
public SuppressInputEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SuppressInputEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
return true;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return true;
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode){
case 6: //end key
//todo: call finish() method of parent activity.
break;
}
return true;
}
}
我可以使用我的类的getContext() 方法(因为它继承自view)来获取上下文,但我不知道如何使用它来访问finish() 方法。任何帮助或指示将不胜感激。
更新: 寻找可以保持班级独立的解决方案。谢谢!
【问题讨论】:
标签: java android android-edittext android-custom-view