2つの線形レイアウトを持つカスタムビューがあります。1つはビューのヘッダーで、2つ目は詳細ビューです。
カスタムビューでは、ヘッダーLinearlayoutのOnClickListenerがすでに定義されています。起動すると、2番目のlinearlayoutが折りたたまれたり展開されたりします。
私がやりたいのは、ヘッダーのOnClickListenerイベントに機能を追加することです(つまり、2番目のレイアウトを折りたたみ/展開してトーストを表示します)。
カスタムビューのソースコードを変更できません。新しいOnClickListenerを設定しようとしましたが、最初のイベント(折りたたみ/展開)が非表示になります。
これをどのように実装すればよいですか?
マイカスタムビューのソースコード:
public class ExpandoLayout extends ViewGroup
{
/* some declarations */
private Linearlayout header;
private linearlayout footer;
/* some code */
@override
protected void onFinishInflate() {
header= new LinearLayout(context);
header.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
toggleExpand();
}
});
}
}
私がやりたいのは、アクティビティですでに定義されているOnClickListenerイベントにコードを追加することです。そんな感じ:
public class myActivity extends Activity {
private Linearlayout myCustomView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.rsdetail);
myCustomView= (MyCustomView) findViewById(R.id.expanded);
myCustomView.getChildAt(0).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(v instanceof LinearLayout)
{
v.performClick();
Toast.makeText(getActivity(), "ExpandoOnClickListener", 2000).show();
}
}
});
}