Android代码:如何在方法之间的相同活动中传递变量

时间:2012-10-01 10:15:09

标签: android

我的布局上有4个按钮。一个是“正确答案”,另外三个是“错误答案” 我已经为我的错误答案编写了一个常用方法,但代码要求我在该段代码中推送不同的按钮名称。我该如何管理?

这是我的代码

/* call method for a answer  */
    final Button rredButton=(Button)findViewById(R.id.RredButton);
    rredButton.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            LayoutInflater layoutInflater
            = (LayoutInflater)getBaseContext()      
            .getSystemService(LAYOUT_INFLATER_SERVICE);
            View popupView = layoutInflater.inflate(R.layout.popupright, null);
            final PopupWindow popupWindow = new PopupWindow(               
                    popupView,                
                    LayoutParams.WRAP_CONTENT,                       
                    LayoutParams.WRAP_CONTENT);     
            Button btnNxtScr = (Button)popupView.findViewById(R.id.nextscreen);             
            btnNxtScr.setOnClickListener(new Button.OnClickListener(){     
                @Override     
                public void onClick(View v) {      
                    Intent myintent1 = new Intent(colorActivity.this,LearningTimeMenu.class);
                    startActivity(myintent1);
                }
            });
                    popupWindow.showAsDropDown(rredButton, 50, -300);
        }});

我试图这样做

final Button rblueButton=(Button)findViewById(R.id.RblueButton);
    rblueButton.setOnClickListener(new View.OnClickListener() {
        @Override     
        public void onClick(View arg0) {          
            createWrongPop();      
            }});

并在createWrongPop()方法中定义代码的布局缓冲器部分;但是这行代码 popupWindow.showAsDropDown(rredButton,50,-330)需要3个按钮中每个按钮的按钮ID。

如何将每个变量传递给方法?

1 个答案:

答案 0 :(得分:1)

接受createWrongPop()方法中的参数并传递onClick方法中收到的视图:

private void createWrongPop(View view){
    //Your logic here
    popupWindow.showAsDropDown(view, 50, -300);
}

final Button rblueButton=(Button)findViewById(R.id.RblueButton);
rblueButton.setOnClickListener(new View.OnClickListener() {
    @Override     
    public void onClick(View arg0) {          
        createWrongPop(arg0);      
    }
});