Как выполнить два типа слушателей на событии onclick? - PullRequest
0 голосов
/ 09 января 2012

В моем приложении есть панель и линейный макет. Пользователь может нажать на панель или макет. Но мне нужно выполнить событие 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;
    }

}

}

Заранее спасибо!

1 Ответ

0 голосов
/ 09 января 2012

Что ж, наиболее очевидное решение - вызвать соответствующий метод OnPanelListener (например, onPanelOpened или onPanelClosed) из метода onClick:

@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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...