繁体   English   中英

onClick更改MainActivity中的imageButton

[英]onClick change imageButton in MainActivity

当我单击onClick按钮时,更改MainActivity.class中的imageButton

这是带有onClick按钮的活动:

public void onClick8 (View view) {
    //here please code for change imagebutton from onClick
    Intent myIntent = new Intent(view.getContext(), MainActivity.class);
    startActivity(myIntent);
    finish();
    MediaPlayer mediaPlayer = MediaPlayer.create(zem13.this, R.raw.melody);
    mediaPlayer.start();

}

这是MainActivity中带有imageButton的代码:

ImageButton imageButton = (ImageButton)findViewById(R.id.imageButton2);
imageButton.setImageResource(R.drawable.psik);

您需要向视图添加一个onClickListener ,这将触发onClick 然后,您需要覆盖onClick ,在此完成操作以更改imageButton

看看这个:

        Button btn=new Button(this);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //to change you imageButton here.
            imageButton.setBackgroundResource(0);
        }
    });

如果我理解得很好,则应该传递一些指示符以将图像资源更改为MainActivity并将其设置在onCreate()中。 尝试像这样更改代码:

    public void onClick8 (View view) {
        //here please code for change imagebutton from onClick
        Intent myIntent = new Intent(view.getContext(), MainActivity.class);

        myIntent.putExtra("shouldChangeButton", true);

        startActivity(myIntent);
        finish();
        MediaPlayer mediaPlayer = MediaPlayer.create(zem13.this, R.raw.melody);
        mediaPlayer.start();
}

然后在MainActivity中:

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

        boolean defaultValue = false; //or true as you need
        if(getIntent().getBooleanExtra("shouldChangeButton", defaultValue)) {
            ImageButton ib = (ImageButton) findViewById(R.id.imagebutton);
            ib.setImageResource(R.drawable.img);
        }
    }

或者,如果您要永久更改,则应将其保留在SharedPreferences中,而不要通过意图传递它:

public void onClick8 (View view) {
        //here please code for change imagebutton from onClick
        Intent myIntent = new Intent(view.getContext(), MainActivity.class);

        SharedPreferences prefs = getSharedPreferences("YourAppNamePrefs", MODE_PRIVATE);
        prefs.edit().putBoolean("shouldChangeButton", true).apply();

        startActivity(myIntent);
        finish();
        MediaPlayer mediaPlayer = MediaPlayer.create(zem13.this, R.raw.melody);
        mediaPlayer.start();
}

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

        boolean defaultValue = false; //or true as you need

        SharedPreferences prefs = getSharedPreferences("YourAppNamePrefs", MODE_PRIVATE);
        boolean shouldChangeButton = prefs.getBoolean("shouldChangeButton", defaultValue);

        if(shouldChangeButton) {
            ImageButton ib = (ImageButton) findViewById(R.id.imagebutton);
            ib.setImageResource(R.drawable.img);
        }
    }

暂无
暂无

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

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