我已经定义了一个由两个TextView
和一个EditText
组成的复合组件。在此复合组件的类中,我定义了一个返回EditText
视图的getter方法,以便我可以在OnFocusChangeListener
中为EditText
设置onCreate
我活动的方法。
但是,在onFocusChange
方法中,我需要访问Compound Component类中定义的一些方法,但我所拥有的只是视图对象。是否可以在Compound Component类中访问这些方法?也许我应该重新考虑代码的结构?
复合组件类(为简洁起见而简化):
public class CompondComponent extends LinearLayour {
private EditText editText;
public CompoundComponent(Context context, AttributeSet attrs) {
super(context, attrs);
// Inflate layout etc.
editText = (EditText) findViewById(R.id.compound_component);
}
// getter
public EditText getEditText() {
return editText;
}
}
活动:
public class MyActivity extends Activity implements View.OnFocusChangeListener {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity);
CompoundComponent cc1 = (CompoundComponent) findViewById(R.id.myComponent1);
cc1.getEditText().setOnFocusChangeListener(this);
CompoundComponent cc2 = (CompoundComponent) findViewById(R.id.myComponent2);
cc2.getEditText().setOnFocusChangeListener(this);
}
public void onFocusChange(View v, boolean focus) {
// need to invoke cc's methods here, i.e. for cc1 or cc2
}
}
非常感谢任何提示。感谢。
答案 0 :(得分:0)
制作cc1
和cc2
活动的字段,并在CompoundComponent
中定义您需要的任何方法,