在我的应用程序中有一个面板和一个线性布局。用户可以单击面板或布局。但是当用户单击“线性”布局时,我需要执行panellistener事件。我怎么能在android中做到这一点?
这是我的代码。
public class FindTables extends Activity implements OnPanelListener, OnClickListener {
LinearLayout overlay;
Panel panel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.findtables);
overlay = (LinearLayout) findViewById(R.id.overlay);
overlay.setOnClickListener(this);
panel = (Panel) findViewById(R.id.topPanel);
panel.setOnPanelListener(this);
panel.setInterpolator(new ExpoInterpolator(Type.OUT));
}
@Override
public void onPanelClosed(Panel panel) {
// overlay.setVisibility(View.GONE);
String panelName = getResources().getResourceEntryName(panel.getId());
Log.d("TestPanels", "Panel [" + panelName + "] closed");
}
@Override
public void onPanelOpened(Panel panel) {
String panelName = getResources().getResourceEntryName(panel.getId());
Log.d("TestPanels", "Panel [" + panelName + "] opened");
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.overlay:
overlay.setVisibility(View.GONE);
break;
default:
break;
}
}
}
提前致谢!
答案 0 :(得分:0)
嗯,最明显的解决方案是从你的onClick方法调用适当的OnPanelListener方法(例如onPanelOpened或onPanelClosed):
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.overlay:
overlay.setVisibility(View.GONE);
onPanelOpened((Panel) findViewById(R.id.topPanel));
break;
default:
break;
}
}