我正在开发一个Android应用程序,我有一个自定义GUI组件,它扩展了TextView.
我想让我的自定义控件在我的自定义控件类和我的重写onclick方法中单击时执行任务.
例如,扩展TextView的类实现了OnClick侦听器并将日志写入日志cat.
然后在我的活动中,我为我的自定义控件设置了一个onclick监听器,这显示了一个Toast通知.
我想要发生的是,当我点击我的自定义控件时,我的活动被覆盖onclick显示toast,并且click方法上的自定义控件类也会运行以显示日志.但我似乎只能得到一个工作或其他,例如,如果我不运行myCustom.setOnClickListener(myListener)然后使用类onclick并执行日志,如果我设置onClick监听器然后我只得到吐司不是日志.
下面是我的自定义控件类
public class NavTextView extends TextView implements View.OnClickListener
{
public NavTextView(Context context) {
super(context);
setOnClickListener(this);
}
public NavTextView(Context context, AttributeSet attrs) {
super(context, attrs);
setOnClickListener(this);
}
public NavTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
setOnClickListener(this);
}
public NavTextView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
setOnClickListener(this);
}
@Override
public void onClick(View v) {
Log.d("NavTextView", "This has been clicked");
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我对onCreate方法的活动
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
navTextView = (NavTextView)findViewById(R.id.navTextView);
navTextView.setOnClickListener(mClickListener);
}
Run Code Online (Sandbox Code Playgroud)
希望这是有道理的
A View只能有一个OnClickListener.在你的NavTextView你在那里设置它.如果您稍后setOnClickListener再次呼叫,则表示您正在替换之前的侦听器.
你可以做的是setOnClickListener在你的自定义中覆盖View,然后包装OnClickListener并调用它们.
public class MyTextView extends TextView implements View.OnClickListener
{
OnClickListener _wrappedOnClickListener;
public MyTextView(Context context) {
super(context);
super.setOnClickListener(this);
}
@Override
public void onClick(View view) {
Log.d("NavTextView", "This has been clicked");
if (_wrappedOnClickListener != null)
_wrappedOnClickListener.onClick(view);
}
@Override
public void setOnClickListener(OnClickListener l) {
_wrappedOnClickListener = l;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1818 次 |
| 最近记录: |