简体   繁体   English

如何在Android Studio中的其他类中访问ImageButton?

[英]How do I access an ImageButton in a different class in Android Studio?

So Im new to Android Studio and I havn't been getting any help through Google. 因此,我是Android Studio的新手,但我从未从Google获得任何帮助。 So my problem is that I'm trying to access an ImageButton from another class rather than just putting that method in the MainActivity . 所以我的问题是,我正在尝试从另一个类访问ImageButton,而不是仅将那个方法放在MainActivity

My second question is, am I doing this the wrong way? 我的第二个问题是,我这样做的方式有误吗? How would you solve this without having to put that method of changing pictures in the MainActivity which I did before (it worked too but started to look messy). 您将如何解决这个问题而不必在我以前做过的MainActivity中放置更改图片的方法(它也起作用,但开始看起来很凌乱)。

So this is the Player class : 这是Player class

public class Player extends ActionBarActivity {

    public Player(){
    }
    public void changeThatPicture(int siffra){

        ImageButton imgBtn = (ImageButton) findViewById(R.id.tarning);
        switch(siffra){
            case 1: imgBtn.setImageResource(R.drawable.one); break;
            case 2: imgBtn.setImageResource(R.drawable.two); break;
            case 3: imgBtn.setImageResource(R.drawable.three); break;
            case 4: imgBtn.setImageResource(R.drawable.four); break;
            case 5: imgBtn.setImageResource(R.drawable.five); break;
            case 6: imgBtn.setImageResource(R.drawable.six); break;
        }
    }

}

And here is from my MainActivity: 这是来自我的MainActivity:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Player p1 = new Player();
    number = 1 + random.nextInt(6);
    p1.changeThatPicture(number);

    playGame();
}

You can try something like this; 您可以尝试这样的事情;

From MainActivity 来自MainActivity

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ImageButton btn = (ImageButton) findViewById(R.id.tarning)
    number = 1 + random.nextInt(6);
    Player.changeThatPicture(btn, number);

    playGame();
}

A Plain class, no need to extend activity it just add confusion and mess. 一个普通的类,不需要扩展活动,只会增加混乱和混乱。 The method is made static so you don't need to instantiate it to use the method. 该方法被设置为静态,因此您无需实例化即可使用该方法。

public class Player  {

    public static void changeThatPicture(ImageButton imgBtn, int siffra) {
        switch(siffra){
            case 1: imgBtn.setImageResource(R.drawable.one); break;
            case 2: imgBtn.setImageResource(R.drawable.two); break;
            case 3: imgBtn.setImageResource(R.drawable.three); break;
            case 4: imgBtn.setImageResource(R.drawable.four); break;
            case 5: imgBtn.setImageResource(R.drawable.five); break;
            case 6: imgBtn.setImageResource(R.drawable.six); break;
        }
    }

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM