我是android新手。我知道我们无法从服务中访问活动的控制权。但是每当我调用服务方法时,我想更改按钮的ImageSource。
这是我在服务中创建的方法:
public void play()
{
if (mp.isPlaying()) {
if (mp != null) {
mp.pause();
// Changing button image to play button
btnPlay.setImageResource(R.drawable.btn_play); // not allowed
}
} else {
// Resume song
if (mp != null) {
mp.start();
// Changing button image to pause button
btnPlay.setImageResource(R.drawable.btn_pause); // not allowed
}
}
}
在活动中我在点击播放按钮上调用此方法。如何在服务中实现此功能。如何更改按钮的图像源。请清除我的怀疑。感谢名单。
答案 0 :(得分:0)
为这些事件创建自定义事件对象,并将您的活动注册为侦听器。
注意:不要忘记取消注册,因为它可能会导致内存泄漏。
答案 1 :(得分:0)
试试此代码
public class MainActivity extends Activity
{
/** Called when the activity is first created. */
public static MainActivity mThis;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mThis = this;
}
}
public void play()
{
Button btnPlay=((Button)MainActivity.mThis.findViewById(R.id.btnPlay));
if (mp.isPlaying()) {
if (mp != null) {
mp.pause();
// Changing button image to play button
btnPlay.setImageResource(R.drawable.btn_play);
}
} else {
// Resume song
if (mp != null) {
mp.start();
// Changing button image to pause button
btnPlay.setImageResource(R.drawable.btn_pause);
}
}