BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #368同步于 2010/3/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖

Android小程序开发求助

tt82238971
2010/3/30镜像同步2 回复
在看《深入浅出Google Android》这本书,书上的TinyPlayer播放器例子是在程序里面给定了一个网络音频地址,然后播放 我在主界面新加了一个按钮,想通过点击这个按钮进入另外一个Activity,然后输入音频地址,然后播放 这是我主界面的Activity,设定的按钮ID是open,不过在模拟器运行后,点击Open不能进入输入音频地址的Activity 哪个同学能帮帮忙,看看我程序错在哪里? 完整源程序在附件里面 package com.tang.tinyplayer3; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageButton; public class Player extends Activity { ImageButton playPauseBtn; ImageButton stopBtn; ImageButton openBtn; OnClickListener listener; UpdateReceiver doUpdate; ContentResolver resolver; int status; Uri nowPlaying; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.player); playPauseBtn = (ImageButton)findViewById(R.id.playorpause); stopBtn = (ImageButton)findViewById(R.id.stop); openBtn=(ImageButton)findViewById(R.id.open); /*定义按钮单击事件的监听器*/ listener = new OnClickListener() { @Override public void onClick(View view) { int cmd = 0; Intent i = new Intent(MusicPlayService.MUSIC_CONTROL); switch (view.getId()) { case R.id.playorpause: if (status == MusicPlayService.STATUS_PLAYING) { /*若是当前正在播放时,就暂停*/ cmd = MusicPlayService.CMD_PAUSE; } else if (status == MusicPlayService.STATUS_STOPPED){ /*若是停止状态,就把Uri装入并播放*/ i.setData(nowPlaying); cmd = MusicPlayService.CMD_PLAY; } else { /*若是暂停状态,就继续播放*/ cmd = MusicPlayService.CMD_PLAY; } break; case R.id.open: Intent intent=new Intent(); intent.setClass(Player.this,Input.class); startActivity(intent); cmd=MusicPlayService.CMD_STOP; break; case R.id.stop: cmd = MusicPlayService.CMD_STOP; break; default: break; } i.putExtra("cmd", cmd); sendBroadcast(i); } }; openBtn.setOnClickListener(listener); playPauseBtn.setOnClickListener(listener); stopBtn.setOnClickListener(listener); doUpdate = new UpdateReceiver(); IntentFilter filter = new IntentFilter(); filter.addAction(MusicPlayService.UPDATE_STATUS); registerReceiver(doUpdate,filter); startService(new Intent(this,MusicPlayService.class)); } /*更新用户界面的Broadcast Receiver*/ public class UpdateReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { status = intent.getIntExtra("status", -1); switch (status) { case MusicPlayService.STATUS_PLAYING: playPauseBtn.setImageResource(R.drawable.pauseselector); break; case MusicPlayService.STATUS_PAUSED: case MusicPlayService.STATUS_STOPPED: playPauseBtn.setImageResource(R.drawable.playselector); break; default: break; } } } } 附件(144.1KB) TinyPlayer3.zip
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
raintemple机器人#1 · 2010/3/31
把logcat报错信息发上来看看? 【 在 tt82238971 (可以是中文) 的大作中提到: 】 : 在看《深入浅出Google Android》这本书,书上的TinyPlayer播放器例子是在程序里面给定了一个网络音频地址,然后播放 : 我在主界面新加了一个按钮,想通过点击这个按钮进入另外一个Activity,然后输入音频地址,然后播放 : 这是我主界面的Activity,设定的按钮ID是open,不过在模拟器运行后,点击Open不能进入输入音频地址的Activity : ...................
lllman机器人#2 · 2010/4/15
楼主的意思是点击OPEN按钮后进入一个自建的新界面,然后再这个界面自行输入音频地址,然后由播放器播放?还是说,点击OPEN按钮后吧一个音频地址传递给播放器,让播放器自行播放? 如果是点击OPEN以后没有进入自建的界面,那是因为这个界面没有SHOW。 如果是第二种情况,则是地址的传输没有完成或者播放器没有启动。 可在相应的代码处添加断点单步执行来查看