引导页
package com.example.day1025_exe;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.example.day1025_exe.fragment.WelFragment;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
public class Wel_activity extends AppCompatActivity {
private ViewPager viewPager;
private List<Fragment> list = new ArrayList<>();
private Timer timer;
private int index = 0;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 100) {
viewPager.setCurrentItem(index);
index++;
if (index == list.size()) {
timer.cancel();
Intent intent = new Intent(Wel_activity.this, Register_Activity.class);
startActivity(intent);
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wel_activity);
viewPager = findViewById(R.id.viewpager);
SharedPreferences wel = getSharedPreferences("wel", MODE_PRIVATE);
boolean isOk = wel.getBoolean("isOk", false);
if (isOk) {
Intent intent = new Intent(Wel_activity.this, Register_Activity.class);
startActivity(intent);
} else {
addFragmet();
view_Adapter();
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
handler.sendEmptyMessage(100);
}
}, 0, 1000);
}
}
private void view_Adapter() {
viewPager.setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
return list.get(i);
}
@Override
public int getCount() {
return list.size();
}
});
}
private void addFragmet() {
for (int i = 0; i < 3; i++) {
WelFragment fragment = new WelFragment();
Bundle bundle = new Bundle();
bundle.putString("msg", "这是第" + (i + 1) + "个fragment");
fragment.setArguments(bundle);
list.add(fragment);
}
}
}
注册
package com.example.day1025_exe;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Register_Activity extends AppCompatActivity {
private EditText username;
private EditText password;
private EditText passwordAgain;
private Button register;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register_);
SharedPreferences wel = getSharedPreferences("wel", MODE_PRIVATE);
SharedPreferences.Editor edit = wel.edit();
edit.putBoolean("isOk", true);
edit.apply();
initView();
}
private void initView() {
username = (EditText) findViewById(R.id.username);
password = (EditText) findViewById(R.id.password);
passwordAgain = (EditText) findViewById(R.id.password_again);
register = (Button) findViewById(R.id.register);
final Uri uri = Uri.parse("content://com.client.msg");
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = username.getText().toString();
String pwd = password.getText().toString();
String pwda = passwordAgain.getText().toString();
String regex = "[1][3,5,6,7,8,9][0-9]{9}";
Pattern compile = Pattern.compile(regex);
Matcher matcher = compile.matcher(name);
boolean matches = matcher.matches();
if (matches && pwd.equals(pwda) && (pwd.length() >= 12) && (pwd.length() <= 18)) {
ContentResolver resolver = getContentResolver();
ContentValues values = new ContentValues();
values.put("username", name);
values.put("password", pwd);
resolver.insert(uri, values);
Intent intent = new Intent(Register_Activity.this, Login_Activity.class);
startActivity(intent);
Log.i("TAG", "onClick: 注册唱功");
} else {
Toast.makeText(Register_Activity.this, "用户名或密码不符合规则", Toast.LENGTH_SHORT).show();
}
}
});
}
}
登录
package com.example.day1025_exe;
import android.content.ContentResolver;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Login_Activity extends AppCompatActivity {
private EditText username1;
private EditText password1;
private Button login;
private boolean isTrue = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_);
initView();
final Uri uri = Uri.parse("content://com.client.msg");
SharedPreferences log = getSharedPreferences("log", MODE_PRIVATE);
boolean islog = log.getBoolean("islog", false);
if (islog) {
Intent intent = new Intent(Login_Activity.this, MainActivity.class);
startActivity(intent);
} else {
tologin(uri);
}
}
private void tologin(final Uri uri) {
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = username1.getText().toString();
String pwd = password1.getText().toString();
ContentResolver resolver = getContentResolver();
Cursor cursor = resolver.query(uri, null, null, null, null);
if (cursor != null) {
while (cursor.moveToNext()) {
String username = cursor.getString(cursor.getColumnIndex("username"));
String password = cursor.getString(cursor.getColumnIndex("password"));
if (username.equals(name) && password.equals(pwd)) {
isTrue = true;
break;
}
}
if (isTrue) {
Intent intent = new Intent(Login_Activity.this, MainActivity.class);
startActivity(intent);
} else {
Toast.makeText(Login_Activity.this, "登录失败!!", Toast.LENGTH_SHORT).show();
}
}
cursor.close();
}
});
}
private void initView() {
username1 = (EditText) findViewById(R.id.username1);
password1 = (EditText) findViewById(R.id.password1);
login = (Button) findViewById(R.id.login);
}
}
联系人
package com.example.day1025_exe.fragment;
import android.Manifest;
import android.content.ContentResolver;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import com.example.day1025_exe.R;
import com.example.day1025_exe.bean.Person;
import java.util.ArrayList;
import java.util.List;
public class PersonFragment extends Fragment {
private ListView left;
private ListView right;
private List<Person> list = new ArrayList<>();
private MyAdapter adapter;
public PersonFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment_person, container, false);
left = (ListView) inflate.findViewById(R.id.left);
right = (ListView) inflate.findViewById(R.id.right);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
getActivity().requestPermissions(new String[]{Manifest.permission.READ_CONTACTS, Manifest.permission.CALL_PHONE, Manifest.permission.READ_EXTERNAL_STORAGE}, 110);
}
ContentResolver resolver = getActivity().getContentResolver();
Cursor cursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null, null);
list.clear();
if (cursor != null) {
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Person person = new Person(name, number);
list.add(person);
}
}
cursor.close();
adapter = new MyAdapter(list, getActivity());
left.setAdapter(adapter);
left.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String number = list.get(position).getNumber();
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + number));
startActivity(intent);
}
});
return inflate;
}
}
音乐
package com.example.day1025_exe.fragment;
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.Build;
import android.os.Bundle;
import android.os.IBinder;
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.day1025_exe.MusicService;
import com.example.day1025_exe.R;
import com.example.day1025_exe.bean.Music;
import com.example.day1025_exe.util.MusicUtils;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import static com.example.day1025_exe.MainActivity.listm;
public class MusicFragment extends Fragment {
private static final String TAG = "MusicFragment";
private ListView listView;
private ImageView imageList;
private TextView tvTitleList;
private SeekBar seekList;
private Button listList;
private Button listLeft;
private Button listStart;
private Button listRight;
private MusicAdapter adapter;
private MusicService.MusicBinder binder;
private boolean isplay = false;
private Timer timer;
public MusicFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment_music, container, false);
initView(inflate);
adapter = new MusicAdapter(listm, getActivity());
listView.setAdapter(adapter);
bindOstart();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
isplay = false;
listStart.setBackgroundResource(R.drawable.playbar_btn_pause);
binder.callPlay(position);
if (timer != null) {
timer.cancel();
}
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
seekList.setMax(binder.callMusicMax());
seekList.setProgress(binder.callgetTime());
}
}, 0, 1000);
}
});
listStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isplay) {
isplay = false;
binder.callReStart();
listStart.setBackgroundResource(R.drawable.playbar_btn_pause);
} else {
isplay = true;
binder.callpause();
listStart.setBackgroundResource(R.drawable.playbar_btn_play);
}
}
});
seekList.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (fromUser) {
binder.callProcess(progress);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
listLeft.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
binder.callBack();
}
});
listRight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
binder.callNext();
}
});
return inflate;
}
private void bindOstart() {
Intent intent = new Intent(getActivity(), MusicService.class);
getActivity().startService(intent);
ServiceConnection connection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
binder = (MusicService.MusicBinder) service;
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
};
getActivity().bindService(intent, connection, Service.BIND_AUTO_CREATE);
}
private void service_bind() {
Intent intent = new Intent(getActivity(), MusicService.class);
startActivity(intent);
ServiceConnection connection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
binder = (MusicService.MusicBinder) service;
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
};
getActivity().bindService(intent, connection, Service.BIND_AUTO_CREATE);
}
private void initView(View inflate) {
listView = (ListView) inflate.findViewById(R.id.listView);
imageList = (ImageView) inflate.findViewById(R.id.image_list);
tvTitleList = (TextView) inflate.findViewById(R.id.tv_title_list);
seekList = (SeekBar) inflate.findViewById(R.id.seek_list);
listList = (Button) inflate.findViewById(R.id.list_list);
listLeft = (Button) inflate.findViewById(R.id.list_left);
listStart = (Button) inflate.findViewById(R.id.list_start);
listRight = (Button) inflate.findViewById(R.id.list_right);
}
}
点击
package com.example.day1025_exe.fragment;
import android.app.PendingIntent;
import android.content.Intent;
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.RemoteViews;
import com.example.day1025_exe.R;
import static android.support.v4.media.session.MediaControllerCompatApi21.getPackageName;
public class ThreeFragment extends Fragment {
public ThreeFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment_three, container, false);
Button button = inflate.findViewById(R.id.fm_but);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent1 = new Intent();
intent1.setAction("com.music.blue");
PendingIntent broadcast = PendingIntent.getBroadcast(this, 110, intent1, PendingIntent.FLAG_UPDATE_CURRENT);
}
});
return inflate;
}
}
activity
package com.example.day1025_exe;
import android.Manifest;
import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.IBinder;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.example.day1025_exe.bean.Music;
import com.example.day1025_exe.fragment.MusicFragment;
import com.example.day1025_exe.fragment.PersonFragment;
import com.example.day1025_exe.fragment.ThreeFragment;
import com.example.day1025_exe.fragment.WelFragment;
import com.example.day1025_exe.util.MusicUtils;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private ViewPager viewpagerMain;
private TabLayout tab;
private List<Fragment> lists = new ArrayList<>();
private List<String> list = new ArrayList<>();
public static List<Music> listm = new ArrayList<>();
public static MusicService.MusicBinder binder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sp();
initView();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.CALL_PHONE, Manifest.permission.READ_CONTACTS}, 100);
} else {
listm = MusicUtils.getMusic(this);
}
}
private void viewp_page() {
PersonFragment personFragment = new PersonFragment();
lists.add(personFragment);
MusicFragment musicFragment = new MusicFragment();
ThreeFragment threeFragment = new ThreeFragment();
lists.add(musicFragment);
lists.add(threeFragment);
list.add("联系人");
list.add("音乐");
list.add("按钮");
viewpagerMain.setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
return lists.get(i);
}
@Override
public int getCount() {
return lists.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return list.get(position);
}
});
}
private void initView() {
viewpagerMain = (ViewPager) findViewById(R.id.viewpager_main);
tab = (TabLayout) findViewById(R.id.tab);
}
private void sp() {
SharedPreferences wel = getSharedPreferences("log", MODE_PRIVATE);
SharedPreferences.Editor edit = wel.edit();
edit.putBoolean("islog", true);
edit.apply();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 100 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
listm = MusicUtils.getMusic(this);
viewp_page();
tab.setupWithViewPager(viewpagerMain);
}
}
}