2015-03-17 4 views
0

Когда я нажимаю OnClick изменения Кнопка IMAGEBUTTON в MainActivity.classOnClick изменить IMAGEBUTTON в MainActivity

Это активность с помощью кнопки 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); 
+0

попробуйте это http://stackoverflow.com/questions/28935923/button-animation-on-click-and-go-to-other-activity-with-an-other-animation/28936798#28936798 –

+0

Есть что-то лучше, пожалуйста ? – noro

+0

Можете ли вы предоставить больше кода с объяснением того, что вы хотите сделать, и точным вопросом? –

ответ

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); 
     } 
    } 
+0

Большое спасибо и как я могу установить его навсегда, чтобы измениться? – noro

+0

надеюсь, что это то, чего вы хотите. прочитайте документ о SharedPreferences. в ответе есть ссылка. –

+0

Спасибо, что очень помогли мне :) – noro

0

Вам необходимо добавить 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); 
     } 
    }); 
+0

, не могли бы вы показать мне код? – noro

+0

Это не ответ ... это предложение должно быть в комментариях ... –

+0

@RohitGoswami, Не могли бы вы отменить свой взгляд? – SilentKnight

Смежные вопросы