复习

本文详细介绍了在安卓应用中实现模块化的具体步骤,包括使用Fragment进行界面管理,通过Intent进行模块间通信,以及如何利用Service和Broadcast进行后台任务处理。同时,文章还深入探讨了登录、注册、联系人管理、音乐播放和背景更改等功能的具体实现方式,以及它们与系统资源的交互过程。

欢迎页面

package com.example.day25_monthreview;

import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.example.day25_monthreview.fragment_wel.WelFragment;

import java.util.ArrayList;
import java.util.List;

public class WelcomeActivity extends AppCompatActivity {
    private ViewPager viewPage;
    private Button butLogin;
    private TextView textView_page;
    private int index = 0;

    private List<Fragment> list = new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_welcome);
        SharedPreferences one = getSharedPreferences("one", MODE_PRIVATE);
        int index = one.getInt("index", 0);
        if(index > 0){
            Intent intent = new Intent(this, LoginActivity.class);
            startActivity(intent);
            finish();
        }

        initView();

       initData();
    }

    private void initData() {
        for (int i = 0; i < 3; i++) {
            WelFragment welFragment = new WelFragment();
            list.add(welFragment);
        }

        viewPage.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int i) {
                return list.get(i);
            }

            @Override
            public int getCount() {
                return list.size();
            }
        });

        viewPage.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {
            }

            @Override
            public void onPageSelected(int i) {
                textView_page.setText((i+1)+"/3");
                if(i == 2){
                    butLogin.setVisibility(View.VISIBLE);
                }else{
                    butLogin.setVisibility(View.GONE);
                }
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });

        butLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                index ++;
                SharedPreferences one = getSharedPreferences("one", MODE_PRIVATE);
                SharedPreferences.Editor edit = one.edit();
                edit.putInt("index",index);
                edit.commit();
                Intent intent = new Intent(WelcomeActivity.this, LoginActivity.class);
                startActivity(intent);
                finish();
            }
        });
    }

    private void initView() {
        textView_page = findViewById(R.id.text_page);
        viewPage = (ViewPager) findViewById(R.id.view_page);
        butLogin = (Button) findViewById(R.id.but_login);
    }


}

登录页面

LoginActivity
package com.example.day25_monthreview;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.example.day25_monthreview.fragment_log.LoginFragment;
import com.example.day25_monthreview.fragment_log.RegisterFragment;
import com.example.day25_monthreview.fragment_log.Share;

import java.util.ArrayList;
import java.util.List;

public class LoginActivity extends AppCompatActivity {


    private List<Fragment> list = new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

//        SharedPreferences login = getSharedPreferences("login", MODE_PRIVATE);
//        int index = login.getInt("index", 0);
//        if(index > 0){
//            Intent intent = new Intent(this, MainActivity.class);
//            startActivity(intent);
//            finish();
//        }

        Share.viewPageLog = (ViewPager) findViewById(R.id.view_page_log);

        list.add(new LoginFragment());
        list.add(new RegisterFragment());
        Share.viewPageLog.setEnabled(false);
        Share.viewPageLog.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int i) {
                return list.get(i);
            }

            @Override
            public int getCount() {
                return list.size();
            }
        });
    }
}

登录碎片
package com.example.day25_monthreview.fragment_log;


import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.example.day25_monthreview.MainActivity;
import com.example.day25_monthreview.R;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;

/**
 * A simple {@link Fragment} subclass.
 */
public class LoginFragment extends Fragment {
    private EditText editUser;
    private EditText editPwd;
    private Button buttonLogin;
    private Button buttonToRegister;

    private  ContentResolver contentResolver;

    private List<User> userList = new ArrayList<>();
    private Uri uri = Uri.parse("content://pan.sql");
    private int index = 0;
    public LoginFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(final LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View inflate = inflater.inflate(R.layout.fragment_login, container, false);

        SharedPreferences login = getContext().getSharedPreferences("login", Context.MODE_PRIVATE);
        int indexs = login.getInt("index", 0);
        if(indexs > 0){
            Intent intent = new Intent(getContext(), MainActivity.class);
            startActivity(intent);
            getActivity().finish();
        }

        initView(inflate);
        buttonToRegister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Share.viewPageLog.setCurrentItem(1);
            }
        });

        buttonLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String pwd = editPwd.getText().toString().trim();
                String user = editUser.getText().toString().trim();

                contentResolver = getContext().getContentResolver();
                lookEdit(user,pwd);
                querySql();

                for (int i = 0; i < userList.size(); i++) {
                    User u = userList.get(i);
                    if (pwd.equals(u.getUser()) && user.equals(u.getUser())) {
                        Toast.makeText(getContext(), "登录成功!", Toast.LENGTH_SHORT).show();
                        index =1;
                        SharedPreferences login = getContext().getSharedPreferences("login", Context.MODE_PRIVATE);
                        SharedPreferences.Editor edit = login.edit();
                        edit.putInt("index", index);

                        Intent intent = new Intent(getActivity(), MainActivity.class);
                        startActivity(intent);
                        return;
                    }
                }
            }
        });

        return inflate;
    }

    private void lookEdit(String user, String pwd) {
        boolean b1 = Pattern.matches("^/w{12,18}$", pwd);
        boolean b2 = Pattern.matches("^/w{12,18}$", user);

        if(!b1 || pwd.equals("")){
            Toast.makeText(getContext(), "密码长度不合法!", Toast.LENGTH_SHORT).show();
            return;
        }

        if(!b2 || user.equals("")){
            Toast.makeText(getContext(), "用户名长度不合法!", Toast.LENGTH_SHORT).show();
            return;
        }
    }

    private void querySql() {
        Cursor cursor = contentResolver.query(uri, null, null, null, null);
        if (cursor != null) {
            while (cursor.moveToNext()) {
                String users = cursor.getString(cursor.getColumnIndex("user"));
                String pwds = cursor.getString(cursor.getColumnIndex("pwd"));

                User u = new User();
                u.setUser(users);
                u.setPwd(pwds);
                userList.add(u);
            }
            cursor.close();
        }

    }

    private void initView(View inflate) {
        editUser = (EditText) inflate.findViewById(R.id.edit_user_log);
        editPwd = (EditText) inflate.findViewById(R.id.edit_pwd_log);
        buttonLogin = (Button) inflate.findViewById(R.id.button_login);
        buttonToRegister = (Button) inflate.findViewById(R.id.button_toRegister);
    }

}

注册碎片
package com.example.day25_monthreview.fragment_log;


import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.example.day25_monthreview.R;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;

/**
 * A simple {@link Fragment} subclass.
 */
public class RegisterFragment extends Fragment {

    private EditText editUserReg;
    private EditText editPwdReg;
    private Button buttonRegister;
    
    private ContentResolver contentResolver;
    
    private Uri uri = Uri.parse("content://pan.sql");
    private List<User> result = new ArrayList<>();
    public RegisterFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, final ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View inflate = inflater.inflate(R.layout.fragment_register, container, false);
        initView(inflate);
        
        buttonRegister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String pwd = editPwdReg.getText().toString().trim();
                String user = editUserReg.getText().toString().trim();
                lookEdit(pwd,user);
                contentResolver = getContext().getContentResolver();
                querySql(pwd,user);
                insertSql(pwd,user);
                Share.viewPageLog.setCurrentItem(0);
            }
        });

        return inflate;
    }

    private void lookEdit(String pwd, String user) {
        boolean b1 = Pattern.matches("^/w{12,18}$", pwd);
        boolean b2 = Pattern.matches("^/w{12,18}$", user);

        if(!b1 || pwd.equals("")){
            Toast.makeText(getContext(), "密码长度不合法!", Toast.LENGTH_SHORT).show();
            return;
        }

        if(!b2 || user.equals("")){
            Toast.makeText(getContext(), "用户名长度不合法!", Toast.LENGTH_SHORT).show();
            return;
        }
    }

    private void insertSql(String pwd, String user) {

        ContentValues values = new ContentValues();
        values.put("user",user);
        values.put("pwd",pwd);
        contentResolver.insert(uri,values);
        Toast.makeText(getContext(), "添加成功!", Toast.LENGTH_SHORT).show();
    }

    private void querySql(String pwd, String user) {
        Cursor cursor = contentResolver.query(uri, null, null, null, null);
        if (cursor != null) {
            while (cursor.moveToNext()) {
                String users = cursor.getString(cursor.getColumnIndex("user"));
                String pwds = cursor.getString(cursor.getColumnIndex("pwd"));

                User u = new User();
                u.setPwd(pwds);
                u.setUser(users);
                result.add(u);
            }
            cursor.close();
        }
        for (int i = 0; i < result.size(); i++) {
            User u = result.get(i);
            if(user.equals(u.getUser())){
                Toast.makeText(getContext(), "此用户已被注册!", Toast.LENGTH_SHORT).show();
                return;
            }
        }
    }

    private void initView(View inflate) {
        editUserReg = (EditText) inflate.findViewById(R.id.edit_user_reg);
        editPwdReg = (EditText) inflate.findViewById(R.id.edit_pwd_reg);
        buttonRegister = (Button) inflate.findViewById(R.id.button_register);
    }

}

联系人+播放+改背景

MainActivity
package com.example.day25_monthreview;

import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.IBinder;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.example.day25_monthreview.fragment_main.BackFrag;
import com.example.day25_monthreview.fragment_main.MediaFrag;
import com.example.day25_monthreview.fragment_main.TelFrag;
import com.example.day25_monthreview.fragment_main.server.MyService;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private ViewPager viewPageMain;
    private ServiceConnection connection;
    public static MyService.MyBinder binder;
    private List<Fragment> fragmentList = new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initView();
        initData();

    }

    private void initData() {



        fragmentList.add(new TelFrag());
        fragmentList.add(new MediaFrag());
        fragmentList.add(new BackFrag());
        viewPageMain.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int i) {
                return fragmentList.get(i);
            }

            @Override
            public int getCount() {
                return fragmentList.size();
            }
        });
    }

    private void initView() {
        viewPageMain = (ViewPager) findViewById(R.id.view_page_main);
    }
    @Override
    public void onDestroy() {
        super.onDestroy();
        unbindService(connection);
    }
}

第一个联系人碎片
package com.example.day25_monthreview.fragment_main;


import android.content.ContentResolver;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;

import com.example.day25_monthreview.R;
import com.example.day25_monthreview.fragment_main.Adapter.TelAdapter;
import com.example.day25_monthreview.fragment_main.entity.Telphone;

import java.util.ArrayList;
import java.util.List;

/**
 * A simple {@link Fragment} subclass.
 */
public class TelFrag extends Fragment {

    private ListView listTel;
    private ListView tel;

    private static final String TAG = "---";
    
    private int index = 0;
    private List<Telphone> dataList = new ArrayList<>();
    private List<String> list = new ArrayList<>();
    public TelFrag() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View inflate = inflater.inflate(R.layout.fragment_tel, container, false);
        listTel = (ListView) inflate.findViewById(R.id.list_tel);
        tel = (ListView) inflate.findViewById(R.id.tel);

//        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
//            getActivity().requestPermissions(new String[]{Manifest.permission.READ_CONTACTS},100);
//        }else{
//            query();
//        }
        query();
        return inflate;
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        if (requestCode == 100 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            query();
        }
    }
    private void query() {
        final String[] array = getActivity().getResources().getStringArray(R.array.list_right);

        ContentResolver contentResolver = getActivity().getContentResolver();
        Cursor cursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
        if(cursor != null){
            while(cursor.moveToNext()){
                String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                Log.i("---", "query: "+name);
                Telphone telphone = new Telphone();
                telphone.setName(name);
                dataList.add(telphone);
            }
            cursor.close();

            for (int i = 0; i < array.length; i++) {
                list.add(array[i]);
            }

            listTel.setAdapter(new TelAdapter(dataList,list,getContext()));
            listTel.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                   Intent intent = new Intent(Intent.ACTION_DIAL);
                   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                   getActivity().startActivity(intent);
                   index = position;
                }
            });

            tel.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Log.i("---", "onItemClick: "+list.get(position)+"\n"+array[position]);
                    if(position == 0){
                        listTel.setSelection(0);
                    }else{
                        if (list.get(position).equals(array[position])){
                        Log.i("---", "onItemClick: "+"我执行了");
                            listTel.setSelection(position*2+1);
                        }
                    }

                }
            });


        }
    }

}

工具类
package com.example.day25_monthreview.fragment_main.entity;

import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.provider.MediaStore;

import java.util.ArrayList;
import java.util.List;

public class MyShare {

    public static List<Music> getData(Context context){
        List<Music> list = new ArrayList<>();

        ContentResolver contentResolver = context.getContentResolver();
        Cursor cursor = contentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
        if (cursor != null) {
            while (cursor.moveToNext()) {
                String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
                String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
                String data = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
                String duration = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));

                Music music = new Music();
                music.setArtist(artist);
                music.setData(data);
                music.setDuration(duration);
                music.setTitle(title);

                list.add(music);
            }
            cursor.close();
        }

        return list;
    }

}

第二个播放页面 -> 碎片页面
package com.example.day25_monthreview.fragment_main;


import android.Manifest;
import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.IBinder;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SeekBar;
import android.widget.TextView;

import com.example.day25_monthreview.MainActivity;
import com.example.day25_monthreview.R;
import com.example.day25_monthreview.fragment_main.Adapter.MusicAdapter;
import com.example.day25_monthreview.fragment_main.entity.Music;
import com.example.day25_monthreview.fragment_main.entity.MyShare;
import com.example.day25_monthreview.fragment_main.server.MyService;

import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

/**
 * A simple {@link Fragment} subclass.
 */
public class MediaFrag extends Fragment {

    private ListView listMedia;
    private Button butStart;
    private Button butPause;
    private Button butLast;
    private Button butNext;
    private ImageView imagePic;
    private SeekBar seekBar;
    private TextView textMainArtist;
    private Timer timer;

    private ServiceConnection connection;
    private  MyService.MyBinder binder;

    private List<Music> list;
    private int index = 0;
    public MediaFrag() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View inflate = inflater.inflate(R.layout.fragment_media, container, false);
        initView(inflate);


        requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},101);

        return inflate;
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        if(requestCode == 101 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            Log.i("---", "onRequestPermissionsResult: ");
            bindServer();
            inToListView();
        }
    }

    private void bindServer() {

        Intent intent = new Intent(getContext(),MyService.class);
        intent.setAction("pan.server");
        getContext().startService(intent);

        connection = new ServiceConnection() {
            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
                binder = (MyService.MyBinder) service;
            }

            @Override
            public void onServiceDisconnected(ComponentName name) {

            }
        };

        getContext().bindService(intent,connection, Service.BIND_AUTO_CREATE);
    }

    private void inToListView() {
        list = MyShare.getData(getContext());
        listMedia.setAdapter(new MusicAdapter(list,getContext()));

        listMedia.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                index = position;

                setText(index);
                seek(position);
            }
        });

        button();
    }

    private void seek(int position) {
        binder.callPlay(position);
        if(timer != null){
            timer.cancel();
        }

        seekBar.setMax(binder.callMax());

        timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                seekBar.setProgress(binder.callPosition());
            }
        },0,1000);

        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                binder.callProgress(progress);
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
    }

    private void setText(int position){
        textMainArtist.setText(list.get(position).getTitle());
    }

    private void button() {
        butStart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                binder.callPlay(index);
            }
        });

        butStart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                binder.callStart();
                setText(binder.callIndex());
            }
        });

        butPause.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                binder.callPause();
            }
        });

        butNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                binder.callNext();
                setText(binder.callIndex());
            }
        });

        butLast.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                binder.callLast();
                setText(binder.callIndex());
            }
        });
    }

    private void initView(View inflate) {
        textMainArtist = (TextView) inflate.findViewById(R.id.text_main_artist);
        listMedia = (ListView) inflate.findViewById(R.id.list_media);
        butStart = (Button) inflate.findViewById(R.id.but_start);
        butPause = (Button) inflate.findViewById(R.id.but_pause);
        butLast = (Button) inflate.findViewById(R.id.but_last);
        butNext = (Button) inflate.findViewById(R.id.but_next);
        imagePic = (ImageView) inflate.findViewById(R.id.image_pic);
        seekBar = (SeekBar) inflate.findViewById(R.id.seek_bar);
    }


}

播放器服务器
package com.example.day25_monthreview.fragment_main.server;

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Binder;
import android.os.IBinder;

import com.example.day25_monthreview.fragment_main.entity.Music;
import com.example.day25_monthreview.fragment_main.entity.MyShare;

import java.io.IOException;
import java.util.List;

public class MyService extends Service {

    private MediaPlayer mediaPlayer;
    private List<Music> dataList;
    private int index = 0;

    @Override
    public void onCreate() {
        super.onCreate();
        mediaPlayer = new MediaPlayer();
        dataList = MyShare.getData(this);
    }

    public MyService() {
    }

    public class MyBinder extends Binder{
        public void callPlay(int position){
            play(position);
        }

        public void callPause(){
            pause();
        }

        public void callStart(){
            start();
        }

        public void callNext(){
            next();
        }

        public void callLast(){
            last();
        }

        public int callIndex(){
            return getIndex();
        }

        public int callPosition(){
            return mediaPlayer.getCurrentPosition();
        }

        public void callProgress(int progress){
            mediaPlayer.seekTo(progress);
        }

        public int callMax(){
            return Integer.parseInt(dataList.get(index).getDuration());
        }
    }

    @Override
    public IBinder onBind(Intent intent) {
        return new MyBinder();
    }

    public void play(int position){
        index = position;
        mediaPlayer.reset();
        try {
            mediaPlayer.setDataSource(dataList.get(position).getData());
            mediaPlayer.prepareAsync();
            mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    mediaPlayer.start();
                }
            });
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void pause(){
        mediaPlayer.pause();
    }

    public void start(){
        mediaPlayer.start();
    }

    public void next(){
        index++;
        if(index > dataList.size()-1){
            index = 0;
        }
        play(index);
    }

    public void last(){
        index --;
        if(index < 0){
            index = dataList.size()-1;
        }
        play(index);
    }

    public int getIndex(){
        return index;
    }

}

第三个改背景页面

碎片中
package com.example.day25_monthreview.fragment_main;


import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.Toast;

import com.example.day25_monthreview.R;

/**
 * A simple {@link Fragment} subclass.
 */
public class BackFrag extends Fragment {
    public static RelativeLayout realLayout;
    private Button buttonChange;
    public static FragmentActivity activity;
    public static Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            if(msg.what == 0){
                AlertDialog.Builder builder = new AlertDialog.Builder(activity);

                builder.setTitle("确定更新背景颜色吗?");
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        BackFrag.realLayout.setBackgroundColor(Color.rgb(0,0,255));
                    }
                });

                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(activity, "取消成功", Toast.LENGTH_SHORT).show();
                        realLayout.setBackgroundColor(Color.rgb(255,255,255));
                    }
                });

                AlertDialog alertDialog = builder.create();
                alertDialog.show();
            }


        }
    };


    public BackFrag() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        activity = getActivity();

        View inflate = inflater.inflate(R.layout.fragment_back, container, false);
        realLayout = (RelativeLayout) inflate.findViewById(R.id.real_layout);
        buttonChange = (Button) inflate.findViewById(R.id.button_change);

        buttonChange.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setAction("pan.broad");
                getContext().sendBroadcast(intent);
            }
        });


        return inflate;
    }

}

广播
package com.example.day25_monthreview.fragment_main.Receiver;

import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.widget.Toast;

import com.example.day25_monthreview.fragment_main.BackFrag;

public class MyReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(final Context context, Intent intent) {
        BackFrag.handler.sendEmptyMessage(0);

    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值