如何使用其他按钮打开另一个按钮的按钮?

时间:2015-02-25 19:55:12

标签: android eclipse

我已成功使用我的Imagebutton打开另一个活动,但问题是在另一个ImageButton上使用相同的方法,它会出现一个错误,说该方法已在“主要活动”中使用。

public class MainActivity extends ActionBarActivity {
      private static ImageButton ImageButton_sbm;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        OnClickImageButtonListener();
    }

    public void OnClickImageButtonListener() {
        ImageButton_sbm = (ImageButton)findViewById(R.id.imageButton);
        ImageButton_sbm.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent = new Intent("saintbedeslytham.saintbedes.event");
                        startActivity(intent);

                    }
                }

        );

    }

    private static ImageButton ImageButton2_sbm;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        OnClickImageButtonListener();
    }

    public void OnClickImageButtonListener() {
        ImageButton_sbm = (ImageButton)findViewById(R.id.imageButton2);
        ImageButton_sbm.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent = new Intent("saintbedeslytham.saintbedes.news");
                        startActivity(intent);

                    }
                }

        );

    }

如果有的话,我可以为"saintbedeslytham.saintbedes.news"

应用另一种方法

2 个答案:

答案 0 :(得分:0)

这里的问题是您无法使用相同的定义创建两个方法。 你有两个:

protected void onCreate(Bundle savedInstanceState);

和两个:

public void OnClickImageButtonListener();

由于两个简单的原因,你不能拥有2个具有相同定义的方法。
想象一下2个同名的人,请求他们的名字。

  • 谁会回答?
  • 你在跟谁打电话?

修改
所以你可以:

public class MainActivity extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        prepareClicks();
    }

    private void prepareClicks() {
        findViewById(R.id.imageButton).setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent = new Intent("saintbedeslytham.saintbedes.event");
                        startActivity(intent);
                    }
                }
        );
        findViewById(R.id.imageButton2).setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent = new Intent("saintbedeslytham.saintbedes.news");
                        startActivity(intent);
                    }
                }
        );
    }
}

答案 1 :(得分:0)

public class MainActivity extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        prepareClicks();
    }

    private void prepareClicks() {
        findViewById(R.id.imageButton).setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent = new Intent("saintbedeslytham.saintbedes.event");
                        startActivity(intent);
                    }
                }
        );
        findViewById(R.id.imageButton2).setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent = new Intent("saintbedeslytham.saintbedes.news");
                        startActivity(intent);
                    }
                }
        );
    }
}

是的,方法有效。

感谢您的回复,

(由Gorcyn完成)