在Android中使用滑块时如何触发触发器来点击?

时间:2013-11-19 09:18:24

标签: android slider onclicklistener

我在Android中使用滑块像gmail或Facbook这样很好。我所做的是我刚刚创建了一个新的活动并给它动画,所以它看起来像滑块。现在我想要的是当用户点击滑块中的任何按钮时,应该打开一个新活动并执行我在其中指定的任务。但我没有得到如何在滑块中传递click事件。

我的代码

public class PlayAudio extends Activity implements OnCompletionListener,
    SeekBar.OnSeekBarChangeListener {

boolean alreadyShowing = false;
private int windowWidth;
private int windowHeight;
private PopupWindow fadePopup;
private Animation ta;
private RelativeLayout baseView;
LayoutInflater inflater;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.player);

    Display display = getWindowManager().getDefaultDisplay();
    windowWidth = display.getWidth();
    windowHeight = display.getHeight();
    inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);       

    findViewById(R.id.imageView1).setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!alreadyShowing) {
                alreadyShowing = true;
                openSlidingMenu();
            }
        }
    });

    findViewById(R.id.imageView3).setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!alreadyShowing) {
                alreadyShowing = true;
                openSlidingMenu();
            }
        }
    });
}

private void openSlidingMenu() {
    showFadePopup();
    int width = (int) (windowWidth * 0.8f);
    translateView((float) (width));
    @SuppressWarnings("deprecation")
    int height = LayoutParams.FILL_PARENT;
    // creating a popup
    final View layout = inflater.inflate(R.layout.option_popup_layout,
            (ViewGroup) findViewById(R.id.popup_element));
    final PopupWindow optionsPopup = new PopupWindow(layout, width, height,
            true);
    optionsPopup.setBackgroundDrawable(new PaintDrawable());
    optionsPopup.showAtLocation(layout, Gravity.NO_GRAVITY, 0, 0);
    optionsPopup.setOnDismissListener(new PopupWindow.OnDismissListener() {
        public void onDismiss() {
            // Removing the fade effect
            fadePopup.dismiss();
            // to clear the previous animation transition in
            cleanUp();
            // move the view out
            translateView(0);
            // to clear the latest animation transition out
            cleanUp();
            // resetting the variable
            alreadyShowing = false;
        }
    });
}

private void showFadePopup() {
    final View layout = inflater.inflate(R.layout.fadepopup,
            (ViewGroup) findViewById(R.id.fadePopup));
    fadePopup = new PopupWindow(layout, windowWidth, windowHeight, false);
    fadePopup.showAtLocation(layout, Gravity.NO_GRAVITY, 0, 0);
}

private void translateView(float right) {
    ta = new TranslateAnimation(0f, right, 0f, 0f);
    ta.setDuration(100);
    ta.setFillEnabled(true);
    ta.setFillAfter(true);

    baseView = (RelativeLayout) findViewById(R.id.Player_Slider);
    baseView.startAnimation(ta);
    baseView.setVisibility(View.VISIBLE);
}

private void cleanUp() {
    if (null != baseView) {
        baseView.clearAnimation();
        baseView = null;
    }
    if (null != ta) {
        ta.cancel();
        ta = null;
    }
    fadePopup = null;
}
}

在点击事件中,我调用了openSlidingMenu函数,该函数打开了新的活动option_popup_layout(http://i.share.pho.to/fb125f6f_o.png

现在我想要的是当我点击option_popup_layout中的任何图片时,应该打开一个新活动,我想在那里执行一些操作,但我没有得到我必须使用click事件来调用新活动的地方。

我已经尝试了一些代码来将click事件放在创建函数中以及其他方法中但是没有工作。

请帮我解决这个问题。提前谢谢。

0 个答案:

没有答案