读书人

还是关于跳转崩溃的有关问题…照着打了

发布时间: 2013-02-25 10:23:36 作者: rapoo

还是关于跳转崩溃的问题……照着打了源码都不行
package com.example.finalproject;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Button;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;

public class MainActivity extends Activity {

private Button btn1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1=(Button) findViewById(R.id.Music);
btn1.setOnClickListener(new OnClickListener()
{

public void onClick(View v)
{
Intent intent = new Intent();
intent.setClass(MainActivity.this, Music.class);
startActivity(intent);
MainActivity.this.finish();
}

});

}

}




import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import android.app.ListActivity;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.GradientDrawable.Orientation;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Handler;
import android.view.KeyEvent;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;




public class Music extends ListActivity {

private Button btn2;
private ImageButton FrontButton = null;
private ImageButton StopButton = null;
private ImageButton StartButton = null;
private ImageButton PauseButton = null;
private ImageButton NextButton = null;
Handler PercentHandler = new Handler();

private SeekBar SeekBar=null;
private TextView curProgressText=null;
private TextView curtimeAndTotaltime=null;

public MediaPlayer mMediaPlayer;


private List<String> mMusicList = new ArrayList<String>();
private int currentListItem = 0;

private static final String MUSIC_PATH = new String("/sdcard/");

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.music_wel);
musicList();
mMediaPlayer = new MediaPlayer();
initmFrontMusic();
initStopMusic();
initStartMusic();
initPauseMusic();
initNextMusic();
initSeekBar();

btn2=(Button)findViewById(R.id.MusicReturn);
btn2.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Intent itent=new Intent();
itent.setClass(Music.this, MainActivity.class);
startActivity(itent);
Music.this.finish();
}
});


}


public void initmFrontMusic()
{
FrontButton = (ImageButton)findViewById(R.id.last);
FrontButton.setOnClickListener(new OnClickListener(){

public void onClick(View arg0) {
if(--currentListItem >= 0){
currentListItem = mMusicList.size();
}else{
playMusic(MUSIC_PATH + mMusicList.get(currentListItem));
}
}
});
}

public void initStopMusic()
{
StopButton = (ImageButton)findViewById(R.id.stop);
StopButton.setOnClickListener(new OnClickListener(){

public void onClick(View arg0) {
if(mMediaPlayer.isPlaying())
{
mMediaPlayer.reset();
}
}
});
}

public void initStartMusic()
{
StartButton = (ImageButton)findViewById(R.id.start);


StartButton.setOnClickListener(new OnClickListener(){

public void onClick(View arg0) {
playMusic(MUSIC_PATH + mMusicList.get(currentListItem));
startSeekBarUpdate();
}
});
}

public void initPauseMusic()
{
PauseButton = (ImageButton)findViewById(R.id.pause);
PauseButton.setOnClickListener(new OnClickListener(){

public void onClick(View arg0) {
if(mMediaPlayer.isPlaying()){
mMediaPlayer.pause();
}
else{
mMediaPlayer.start();
}
}
});
}

public void initNextMusic()
{
NextButton = (ImageButton)findViewById(R.id.next);
NextButton.setOnClickListener(new OnClickListener(){

public void onClick(View arg0) {
nextMusic();
}
});
}

public void initSeekBar()
{
/*初始化拖动条和当前进度显示值*/
SeekBar=(SeekBar)findViewById(R.id.seekBar1);
curProgressText=(TextView)findViewById(R.id.currentProgress);
curtimeAndTotaltime=(TextView)findViewById(R.id.curtimeandtotaltime);

SeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
/* 如果拖动进度发生改变,则显示当前进度值 */
curProgressText.setText("当前进度: " + progress);
}

public void onStartTrackingTouch(SeekBar arg0) {
curProgressText.setText("拖动中...");
}

public void onStopTrackingTouch(SeekBar arg0) {
int dest = SeekBar.getProgress();
int mMax = mMediaPlayer.getDuration();
int sMax = SeekBar.getMax();

mMediaPlayer.seekTo(mMax*dest/sMax);

}
});
}

private void playMusic(String path)
{
try {
mMediaPlayer.reset();
mMediaPlayer.setDataSource(path);
mMediaPlayer.prepare();
mMediaPlayer.start();
mMediaPlayer.setOnCompletionListener(new OnCompletionListener(){

public void onCompletion(MediaPlayer arg0) {
nextMusic();
}
});
}catch (IOException e) {
e.printStackTrace();
}
}

private void nextMusic()
{
if(++currentListItem >= mMusicList.size())
{
currentListItem = 0;
}
else
{
playMusic(MUSIC_PATH + mMusicList.get(currentListItem));
}
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
mMediaPlayer.stop();
mMediaPlayer.release();
}
return super.onKeyDown(keyCode, event);
}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {


currentListItem = position;
playMusic(MUSIC_PATH + mMusicList.get(position));
super.onListItemClick(l, v, position, id);
}

//播放列表
public void musicList()
{
File home = new File(MUSIC_PATH);
if(home.listFiles(new MusicFilter()).length > 0)
{
for(File file : home.listFiles(new MusicFilter()))
{
mMusicList.add(file.getName());
}
ArrayAdapter<String> musicList=new ArrayAdapter<String>(Music.this,R.layout.musicitem,mMusicList);
setListAdapter(musicList);
}
}

/*更新拖动条进度*/

public void startSeekBarUpdate() {
PercentHandler.post(start);
}

Runnable start = new Runnable() {

public void run() {
// 用一个handler更新SeekBar
PercentHandler.post(updatesb);
}

};

Runnable updatesb =new Runnable(){

public void run() {
int position = mMediaPlayer.getCurrentPosition();
int mMax = mMediaPlayer.getDuration();
int sMax = SeekBar.getMax();
SeekBar.setProgress(position * sMax / mMax);
curtimeAndTotaltime.setText("当前播放时间: " + position / 1000 + "秒"
+ "\n歌曲总时间: " + mMax / 1000 + "秒");
// 每秒钟更新一次
PercentHandler.postDelayed(updatesb, 1000);
}

};


//过滤文件类型
class MusicFilter implements FilenameFilter
{

public boolean accept(File dir, String name) {
//这里还可以设置其他格式的音乐文件
return (name.endsWith(".mp3"));
}
}

}


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.finalproject"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.finalproject.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.example.finalproject.Music"></activity>


</application>

</manifest>
—————————————————————————————————————————
基本都是照着书打出来的代码,在manifest里把2个用到的activity也注册了,可还是从主页面跳转进去的时候就崩溃出错了,请问各位这是什么原因?

读书人网 >Android

热点推荐