一,所有java和xml文件
二详细代码
1.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.qimo">
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="MelodyMate旋律伴侣"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".BijiActivity"></activity>
<activity
android:name=".Zhu.ZhuMainActivity"
android:label="@string/title_activity_zhu_main" />
<service
android:name=".Music.MusicService"
android:enabled="true"
android:exported="true" />
<activity android:name=".Guide.GuideActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity" />
<activity android:name=".RegisterActivity" />
<activity android:name=".startActivity" />
<activity android:name=".Music.MainActivity" />
<activity android:name=".Zhu.MainActivityshenghuo" />
<activity android:name=".NotepadActivity" />
<activity android:name=".RecordActivity" />
<activity android:name=".XiuGaixinxiActivity" />
<activity android:name=".Music.NextActivity" />
<service
android:name=".Music.MusicService"
android:enabled="true"
android:exported="true" />
<activity
android:name=".Music.MusicActivity"
android:exported="false" />
</application>
</manifest>
2.引导页面
package com.example.qimo.Guide;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
import com.example.qimo.MainActivity;
import com.example.qimo.R;
import java.util.ArrayList;
import java.util.List;
public class GuideActivity extends AppCompatActivity {
private ViewPager myViewPager;
private View view1,view2,view3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_guide);
myViewPager=findViewById(R.id.myViewPager);
LayoutInflater layoutInflater=getLayoutInflater();
view1=layoutInflater.inflate(R.layout.guide_1,null);
view2=layoutInflater.inflate(R.layout.guide_2,null);
view3=layoutInflater.inflate(R.layout.guide_3,null);
Button buttonNext = view3.findViewById(R.id.button);
buttonNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 跳转到另一个Activity
Intent intent = new Intent(GuideActivity.this, MainActivity.class);
startActivity(intent);
}
});
List<View> viewList=new ArrayList<View>();
viewList.add(view1);
viewList.add(view2);
viewList.add(view3);
MyPagerAdapter myPagerAdapter=new MyPagerAdapter(viewList);
myViewPager.setAdapter(myPagerAdapter);
}
}
package com.example.qimo.Guide;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;
import java.util.List;
public class MyPagerAdapter extends PagerAdapter {
//private List<View>viewList=new ArrayList<View>();
private List<View> viewList;
public MyPagerAdapter(List<View>viewList){
this.viewList=viewList;
}
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
container.addView(viewList.get(position));
return viewList.get( position);
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView(viewList.get(position));
}
@Override
public int getCount() {
return viewList.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view==object;
}
}
4.音乐
package com.example.qimo.Music;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import androidx.fragment.app.Fragment;
import com.example.qimo.R;
public class frag1 extends Fragment {
private View view;
//创建歌曲的String数组和歌手图片的int数组
public String[] name={"赵雷——我记得","贝乐虎——happy birthday","邓紫棋——喜欢你","薛之谦——像风一样"};
public static int[] icons={R.drawable.yinyue2,R.drawable.yinyue3,R.drawable.yinyue4,R.drawable.yinyue5};
@Override
public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
//绑定布局,只不过这里是用inflate()方法
view=inflater.inflate(R.layout.music_list,null);
//创建listView列表并且绑定控件
ListView listView=view.findViewById(R.id.lv);
//实例化一个适配器
MyBaseAdapter adapter=new MyBaseAdapter();
//列表设置适配器
listView.setAdapter(adapter);
//列表元素的点击监听器
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//创建Intent对象,参数就是从frag1跳转到MusicActivity
Intent intent=new Intent(frag1.this.getContext(), MusicActivity.class);
//将歌曲名和歌曲的下标存入Intent对象
intent.putExtra("name",name[position]);
intent.putExtra("position",String.valueOf(position));
//开始跳转
startActivity(intent);
}
});
return view;
}
//这里是创建一个自定义适配器,可以作为模板
class MyBaseAdapter extends BaseAdapter{
@Override
public int getCount(){return name.length;}
@Override
public Object getItem(int i){return name[i];}
@Override
public long getItemId(int i){return i;}
@Override
public View getView(int i ,View convertView, ViewGroup parent) {
//绑定好VIew,然后绑定控件
View view=View.inflate(frag1.this.getContext(),R.layout.item_layout,null);
TextView tv_name=view.findViewById(R.id.item_name);
ImageView iv=view.findViewById(R.id.iv);
//设置控件显示的内容,就是获取的歌曲名和歌手图片
tv_name.setText(name[i]);
iv.setImageResource(icons[i]);
return view;
}
}
}
package com.example.qimo.Music;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import com.example.qimo.R;
public class frag2 extends Fragment {
// 创建一个View
private View zj;
private ImageView imageView;
// 显示布局
public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
zj = inflater.inflate(R.layout.frag2_layout, container, false);
// 初始化ImageView
imageView = zj.findViewById(R.id.image_view);
// 设置ImageView点击监听器
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 跳转到另一个Activity的示例
Intent intent = new Intent(getActivity(), NextActivity.class);
startActivity(intent);
}
});
return zj;
}
}
package com.example.qimo.Music;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import com.example.qimo.R;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
//创建需要用到的控件的变量
private TextView tv1,tv2;
private FragmentManager fm;
private FragmentTransaction ft;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_music_main);
//绑定控件
tv1=(TextView)findViewById(R.id.menu1);
tv2=(TextView)findViewById(R.id.menu2);
//设置监听器,固定写法
tv1.setOnClickListener(this);
tv2.setOnClickListener(this);
//若是继承FragmentActivity,fm=getFragmentManger();
fm=getSupportFragmentManager();
//fm可以理解为Fragment显示的管理者,ft就是它的改变者
ft=fm.beginTransaction();
//默认情况下就显示frag1
ft.replace(R.id.content,new frag1());
//提交改变的内容
ft.commit();
}
@Override
//控件的点击事件
public void onClick(View v){
ft=fm.beginTransaction();
//切换选项卡
switch (v.getId()){
case R.id.menu1:
ft.replace(R.id.content,new frag1());
break;
case R.id.menu2:
ft.replace(R.id.content,new frag2());
break;
default:
break;
}
ft.commit();
}
}
package com.example.qimo.Music;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import android.animation.ObjectAnimator;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.view.View;
import android.view.animation.LinearInterpolator;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.TextView;
import com.example.qimo.R;
import static java.lang.Integer.parseInt;
public class MusicActivity extends AppCompatActivity implements View.OnClickListener{
//进度条
private static SeekBar sb;
private static TextView tv_progress,tv_total,name_song;
//动画
private ObjectAnimator animator;
private MusicService.MusicControl musicControl;
private String name;
private Intent intent1,intent2;
private MyServiceConn conn;
//记录服务是否被解绑,默认没有
private boolean isUnbind =false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_music);
//获取从frag1传来的信息
intent1=getIntent();
init();
}
private void init(){
//进度条上小绿点的位置,也就是当前已播放时间
tv_progress=(TextView)findViewById(R.id.tv_progress);
//进度条的总长度,就是总时间
tv_total=(TextView)findViewById(R.id.tv_total);
//进度条的控件
sb=(SeekBar)findViewById(R.id.sb);
//歌曲名显示的控件
name_song=(TextView)findViewById(R.id.song_name);
//绑定控件的同时设置点击事件监听器
findViewById(R.id.btn_play).setOnClickListener(this);
findViewById(R.id.btn_pause).setOnClickListener(this);
findViewById(R.id.btn_continue_play).setOnClickListener(this);
findViewById(R.id.btn_exit).setOnClickListener(this);
name=intent1.getStringExtra("name");
name_song.setText(name);
//创建一个意图对象,是从当前的Activity跳转到Service
intent2=new Intent(this,MusicService.class);
conn=new MyServiceConn();//创建服务连接对象
bindService(intent2,conn,BIND_AUTO_CREATE);//绑定服务
//为滑动条添加事件监听,每个控件不同果然点击事件方法名都不同
sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
//这一行注解是保证API在KITKAT以上的模拟器才能顺利运行,也就是19以上
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
//进当滑动条到末端时,结束动画
if (progress==seekBar.getMax()){
animator.pause();//停止播放动画
}
}
@Override
//滑动条开始滑动时调用
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
//滑动条停止滑动时调用
public void onStopTrackingTouch(SeekBar seekBar) {
//根据拖动的进度改变音乐播放进度
int progress=seekBar.getProgress();//获取seekBar的进度
musicControl.seekTo(progress);//改变播放进度
}
});
//声明并绑定音乐播放器的iv_music控件
ImageView iv_music=(ImageView)findViewById(R.id.iv_music);
String position= intent1.getStringExtra("position");
//praseInt()就是将字符串变成整数类型
int i=parseInt(position);
iv_music.setImageResource(frag1.icons[i]);
//rotation和0f,360.0f就设置了动画是从0°旋转到360°
animator=ObjectAnimator.ofFloat(iv_music,"rotation",0f,360.0f);
animator.setDuration(10000);//动画旋转一周的时间为10秒
animator.setInterpolator(new LinearInterpolator());//匀速
animator.setRepeatCount(-1);//-1表示设置动画无限循环
}
//handler机制,可以理解为线程间的通信,我获取到一个信息,然后把这个信息告诉你,就这么简单
public static Handler handler=new Handler(){//创建消息处理器对象
//在主线程中处理从子线程发送过来的消息
@Override
public void handleMessage(Message msg){
Bundle bundle=msg.getData();//获取从子线程发送过来的音乐播放进度
//获取当前进度currentPosition和总时长duration
int duration=bundle.getInt("duration");
int currentPosition=bundle.getInt("currentPosition");
//对进度条进行设置
sb.setMax(duration);
sb.setProgress(currentPosition);
//歌曲是多少分钟多少秒钟
int minute=duration/1000/60;
int second=duration/1000%60;
String strMinute=null;
String strSecond=null;
if(minute<10){//如果歌曲的时间中的分钟小于10
strMinute="0"+minute;//在分钟的前面加一个0
}else{
strMinute=minute+"";
}
if (second<10){//如果歌曲中的秒钟小于10
strSecond="0"+second;//在秒钟前面加一个0
}else{
strSecond=second+"";
}
//这里就显示了歌曲总时长
tv_total.setText(strMinute+":"+strSecond);
//歌曲当前播放时长
minute=currentPosition/1000/60;
second=currentPosition/1000%60;
if(minute<10){//如果歌曲的时间中的分钟小于10
strMinute="0"+minute;//在分钟的前面加一个0
}else{
strMinute=minute+" ";
}
if (second<10){//如果歌曲中的秒钟小于10
strSecond="0"+second;//在秒钟前面加一个0
}else{
strSecond=second+" ";
}
//显示当前歌曲已经播放的时间
tv_progress.setText(strMinute+":"+strSecond);
}
};
//用于实现连接服务,比较模板化,不需要详细知道内容
class MyServiceConn implements ServiceConnection{
@Override
public void onServiceConnected(ComponentName name, IBinder service){
musicControl=(MusicService.MusicControl) service;
}
@Override
public void onServiceDisconnected(ComponentName name){
}
}
//判断服务是否被解绑
private void unbind(boolean isUnbind){
//如果解绑了
if(!isUnbind){
musicControl.pausePlay();//音乐暂停播放
unbindService(conn);//解绑服务
}
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_play://播放按钮点击事件
String position=intent1.getStringExtra("position");
int i=parseInt(position);
musicControl.play(i);
animator.start();
break;
case R.id.btn_pause://暂停按钮点击事件
musicControl.pausePlay();
animator.pause();
break;
case R.id.btn_continue_play://继续播放按钮点击事件
musicControl.continuePlay();
animator.start();
break;
case R.id.btn_exit://退出按钮点击事件
unbind(isUnbind);
isUnbind=true;
finish();
break;
}
}
@Override
protected void onDestroy(){
super.onDestroy();
unbind(isUnbind);//解绑服务
}
}
package com.example.qimo.Music;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Binder;
import android.os.Bundle;
import android.os.IBinder;
import android.os.Message;
import java.util.Timer;
import java.util.TimerTask;
//这是一个Service服务类
public class MusicService extends Service {
//声明一个MediaPlayer引用
private MediaPlayer player;
//声明一个计时器引用
private Timer timer;
//构造函数
public MusicService() {}
@Override
public IBinder onBind(Intent intent){
return new MusicControl();
}
@Override
public void onCreate(){
super.onCreate();
//创建音乐播放器对象
player=new MediaPlayer();
}
//添加计时器用于设置音乐播放器中的播放进度条
public void addTimer(){
//如果timer不存在,也就是没有引用实例
if(timer==null){
//创建计时器对象
timer=new Timer();
TimerTask task=new TimerTask() {
@Override
public void run() {
if (player==null) return;
int duration=player.getDuration();//获取歌曲总时长
int currentPosition=player.getCurrentPosition();//获取播放进度
Message msg= MusicActivity.handler.obtainMessage();//创建消息对象
//将音乐的总时长和播放进度封装至bundle中
Bundle bundle=new Bundle();
bundle.putInt("duration",duration);
bundle.putInt("currentPosition",currentPosition);
//再将bundle封装到msg消息对象中
msg.setData(bundle);
//最后将消息发送到主线程的消息队列
MusicActivity.handler.sendMessage(msg);
}
};
//开始计时任务后的5毫秒,第一次执行task任务,以后每500毫秒(0.5s)执行一次
timer.schedule(task,5,500);
}
}
//Binder是一种跨进程的通信方式
class MusicControl extends Binder{
public void play(int i){//String path
Uri uri=Uri.parse("android.resource://"+getPackageName()+"/raw/music_"+i);
try{
//重置音乐播放器
player.reset();
//加载多媒体文件
player=MediaPlayer.create(getApplicationContext(),uri);
player.start();//播放音乐
addTimer();//添加计时器
}catch(Exception e){
e.printStackTrace();
}
}
//下面的暂停继续和退出方法全部调用的是MediaPlayer自带的方法
public void pausePlay(){
player.pause();//暂停播放音乐
}
public void continuePlay(){
player.start();//继续播放音乐
}
public void seekTo(int progress){
player.seekTo(progress);//设置音乐的播放位置
}
}
//销毁多媒体播放器
@Override
public void onDestroy(){
super.onDestroy();
if(player==null) return;
if(player.isPlaying()) player.stop();//停止播放音乐
player.release();//释放占用的资源
player=null;//将player置为空
}
}
package com.example.qimo.Music;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
import com.example.qimo.R;
public class NextActivity extends AppCompatActivity {
private MediaPlayer mediaPlayer;
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xuezhiqian);
imageView = findViewById(R.id.imageView); // 假设你的ImageView的ID是imageView
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
playMusic();
}
});
}
private void playMusic() {
if (mediaPlayer == null) {
mediaPlayer = MediaPlayer.create(this, R.raw.nothing); // 替换your_music_file为你的音乐文件名
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release(); // 音乐播放完成后释放资源
}
});
}
mediaPlayer.start(); // 开始播放音乐
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mediaPlayer != null) {
mediaPlayer.release(); // Activity销毁时释放MediaPlayer资源
mediaPlayer = null;
}
}
}
package com.example.qimo.utils;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
public class JDBCUtils extends SQLiteOpenHelper {
public JDBCUtils(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table logins(id integer primary key autoincrement,usname text,uspwd text)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
package com.example.qimo.Zhu.ui.Geren;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
import com.example.qimo.R;
import com.example.qimo.XiuGaixinxiActivity;
import com.example.qimo.Zhu.MainActivityshenghuo;
public class GerenNotificationsFragment extends Fragment {
private GerenNotificationsViewModel GerennotificationsViewModel;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
GerennotificationsViewModel =
ViewModelProviders.of(this).get(GerenNotificationsViewModel.class);
View root = inflater.inflate(R.layout.gerenzhongxin, container, false);
Button button4 = root.findViewById(R.id.button4);
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 创建Intent以启动MainActivity
Intent intent = new Intent(getActivity(), XiuGaixinxiActivity.class);
startActivity(intent);
}
});
return root;
}
}
package com.example.qimo.Zhu.ui.Geren;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
public class GerenNotificationsViewModel extends ViewModel {
private MutableLiveData<String> mText;
public GerenNotificationsViewModel() {
mText = new MutableLiveData<>();
mText.setValue("This is notifications fragment");
}
public LiveData<String> getText() {
return mText;
}
}
package com.example.qimo.Zhu.ui.Music;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
import com.example.qimo.Music.MainActivity;
import com.example.qimo.R;
public class MusicHomeFragment extends Fragment {
private MusicHomeViewModel musicHomeViewModel;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
musicHomeViewModel =
ViewModelProviders.of(this).get(MusicHomeViewModel.class);
View root = inflater.inflate(R.layout.music, container, false);
final TextView textView = root.findViewById(R.id.text_home);
Button button2 = root.findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 创建Intent以启动MainActivity
Intent intent = new Intent(getActivity(), MainActivity.class);
startActivity(intent);
}
});
return root;
}
}
package com.example.qimo.Zhu.ui.Music;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
public class MusicHomeViewModel extends ViewModel {
private MutableLiveData<String> mText;
public MusicHomeViewModel() {
mText = new MutableLiveData<>();
mText.setValue("This is home fragment");
}
public LiveData<String> getText() {
return mText;
}
}
package com.example.qimo.Zhu.ui.Shenghuo;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
import com.example.qimo.Music.MainActivity;
import com.example.qimo.R;
import com.example.qimo.Zhu.MainActivityshenghuo;
public class ShenghuoDashboardFragment extends Fragment {
private ShenghuoDashboardViewModel shenghuoDashboardViewModel;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
shenghuoDashboardViewModel =
ViewModelProviders.of(this).get(ShenghuoDashboardViewModel.class);
View root = inflater.inflate(R.layout.shenghuo, container, false);
final TextView textView = root.findViewById(R.id.text_dashboard);
Button button3 = root.findViewById(R.id.button3);
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 创建Intent以启动MainActivity
Intent intent = new Intent(getActivity(), MainActivityshenghuo.class);
startActivity(intent);
}
});
return root;
}
}
package com.example.qimo.Zhu.ui.Shenghuo;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
public class ShenghuoDashboardViewModel extends ViewModel {
private MutableLiveData<String> mText;
public ShenghuoDashboardViewModel() {
mText = new MutableLiveData<>();
mText.setValue("This is dashboard fragment");
}
public LiveData<String> getText() {
return mText;
}
}
package com.example.qimo.Zhu;
import android.content.Intent;
import android.net.Uri;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
import com.example.qimo.NotepadActivity;
import com.example.qimo.R;
public class MainActivityshenghuo extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.shenghuoyemian);
//
Button but = findViewById(R.id.button1);
but.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent("com.example.myappch5.ACTION_START");
intent.addCategory("com.example.myappch5.HY_CATEGRORY");
startActivity(intent);
}
});
// 调用接口打电话
Button call = findViewById(R.id.call); // 获取控件
call.setOnClickListener(new View.OnClickListener() { //设置监听
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_DIAL); // 调用电话接口
intent.setData(Uri.parse("tel:100000"));
startActivity(intent);
}
});
// 调用接口发短信
Button Msg = findViewById(R.id.message);
Msg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SENDTO); // 调用短信接口
intent.setData(Uri.parse("smsto:100000"));
intent.putExtra("msg_boddy", "I LOVE YOU");
startActivity(intent);
}
});
// 调用接口浏览网页
Button brow = findViewById(R.id.browser);
brow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW); // 调用浏览网页接口
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
}
});
// 找到按钮
Button buttonClock = findViewById(R.id.buttonnaozhong);
Button buttonCalendar = findViewById(R.id.buttonrili);
// 设置点击事件监听器
buttonClock.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 尝试启动时钟应用(可能需要调整Intent以匹配你的设备)
Intent intentClock = new Intent(Intent.ACTION_MAIN);
if (intentClock.resolveActivity(getPackageManager()) != null) {
startActivity(intentClock);
} else {
// 时钟应用不存在或无法解析Intent时的备选方案
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("clock://alarmclock"));
}
}
});
buttonCalendar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_APP_CALENDAR);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
} else {
Toast.makeText(MainActivityshenghuo.this, "无法找到日历应用", Toast.LENGTH_SHORT).show();
}
}
});
Button buttonNext = findViewById(R.id.buttonjishiben);
buttonNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivityshenghuo.this, NotepadActivity.class);
startActivity(intent);
}
});
}
}
package com.example.qimo.Zhu;
import android.os.Bundle;
import com.example.qimo.R;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
public class ZhuMainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zhu_main);
BottomNavigationView navView = findViewById(R.id.nav_view);
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications)
.build();
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
NavigationUI.setupWithNavController(navView, navController);
}
}
package com.example.qimo;
//import androidx.appcompat.app.AppCompatActivity;
//import android.os.Bundle;
//
//import android.app.Activity;
//import android.content.Intent;
//import android.net.Uri;
//import androidx.appcompat.app.AppCompatActivity;
//import android.os.Bundle;
//import android.view.View;
//import android.view.WindowManager;
//import android.widget.Button;
//import android.widget.ImageButton;
//import android.widget.ImageView;
//
//import androidx.appcompat.app.AppCompatActivity;
//
//
//public class MainActivity extends AppCompatActivity {
//
// @Override
// protected void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
// //获取电话图片按钮
// ImageButton imageButton = (ImageButton) findViewById(R.id.imageButton_phone);
// //获取短信图片按钮
// ImageButton imageButton1 = (ImageButton) findViewById(R.id.imageButton_sms);
// imageButton.setOnClickListener(listener); //为电话图片按钮设置单击事件
// imageButton1.setOnClickListener(listener);//为短信图片按钮设置单击事件
// }
//
// //创建监听事件对象
// View.OnClickListener listener = new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// Intent intent = new Intent(); //创建Intent对象
// switch (v.getId()) { //根据ImageButton组件的id进行判断
// case R.id.imageButton_phone: //如果是电话图片按钮
// intent.setAction(intent.ACTION_DIAL); //调用拨号面板
// intent.setData(Uri.parse("tel:043184978981")); //设置要拨打的号码
// startActivity(intent); //启动Activity
// break;
// case R.id.imageButton_sms: //如果是短信图片按钮
// intent.setAction(intent.ACTION_SENDTO); //调用发送短信息
// intent.setData(Uri.parse("smsto:5554")); //设置要发送的号码
// intent.putExtra("sms_body", "Welcome to Android!"); //设置要发送的信息内容
// startActivity(intent); //启动Activity
// }
// }
//
//
// };
//}
import android.content.Intent;
import android.net.Uri;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
public class BijiActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//
Button but = findViewById(R.id.button1);
but.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent("com.example.myappch5.ACTION_START");
intent.addCategory("com.example.myappch5.HY_CATEGRORY");
startActivity(intent);
}
});
// 调用接口打电话
Button call = findViewById(R.id.call); // 获取控件
call.setOnClickListener(new View.OnClickListener() { //设置监听
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_DIAL); // 调用电话接口
intent.setData(Uri.parse("tel:100000"));
startActivity(intent);
}
});
// 调用接口发短信
Button Msg = findViewById(R.id.message);
Msg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SENDTO); // 调用短信接口
intent.setData(Uri.parse("smsto:100000"));
intent.putExtra("msg_boddy", "I LOVE YOU");
startActivity(intent);
}
});
// 调用接口浏览网页
Button brow = findViewById(R.id.browser);
brow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW); // 调用浏览网页接口
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
}
});
// 找到按钮
Button buttonClock = findViewById(R.id.buttonnaozhong);
Button buttonCalendar = findViewById(R.id.buttonrili);
// 设置点击事件监听器
buttonClock.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 尝试启动时钟应用(可能需要调整Intent以匹配你的设备)
Intent intentClock = new Intent(Intent.ACTION_MAIN);
if (intentClock.resolveActivity(getPackageManager()) != null) {
startActivity(intentClock);
} else {
// 时钟应用不存在或无法解析Intent时的备选方案
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("clock://alarmclock"));
}
}
});
buttonCalendar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_APP_CALENDAR);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
} else {
Toast.makeText(BijiActivity.this, "无法找到日历应用", Toast.LENGTH_SHORT).show();
}
}
});
Button buttonNext = findViewById(R.id.buttonjishiben);
buttonNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(BijiActivity.this, NotepadActivity.class);
startActivity(intent);
}
});
}
}
package com.example.qimo;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DBUtils {
public static final String DATABASE_NAME = "Notepad5";//数据库名
public static final String DATABASE_TABLE = "Note"; //表名
public static final int DATABASE_VERION = 1; //数据库版本
//数据库表中的列名
public static final String NOTEPAD_ID = "id";
public static final String NOTEPAD_CONTENT = "content";
public static final String NOTEPAD_TIME = "notetime";
//获取当前日期
public static final String getTime(){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date date = new Date(System.currentTimeMillis());
return simpleDateFormat.format(date);
}
}
package com.example.qimo;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.example.qimo.Zhu.ZhuMainActivity;
import com.example.qimo.Zhu.ZhuMainActivity;
import com.example.qimo.utils.JDBCUtils;
public class MainActivity extends AppCompatActivity {
EditText name, pwd;
Button btnlogin, btnreg;
JDBCUtils mysql;
SQLiteDatabase db;
SharedPreferences sp1, sp2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name = this.findViewById(R.id.name); //用户名输入框
pwd = this.findViewById(R.id.pwd); //密码输入框
btnlogin = this.findViewById(R.id.login); //登录按钮
btnreg = this.findViewById(R.id.reg); //注册按钮
sp1 = this.getSharedPreferences("useinfo", this.MODE_PRIVATE);
sp2 = this.getSharedPreferences("username", this.MODE_PRIVATE);
name.setText(sp1.getString("usname", null));
pwd.setText(sp1.getString("uspwd", null));
mysql = new JDBCUtils(this, "Userinfo", null, 1); //建数据库或者取数据库
db = mysql.getReadableDatabase();
btnlogin.setOnClickListener(new View.OnClickListener() { //登录事件
@Override
public void onClick(View v) {
String username = name.getText().toString();
String password = pwd.getText().toString(); //获取用户输入的用户名和密码
//查询用户名和密码相同的数据
Cursor cursor = db.query("logins", new String[]{"usname", "uspwd"}, " usname=? and uspwd=?", new String[]{username, password}, null, null, null);
int flag = cursor.getCount(); //查询出来的记录项的条数,若没有该用户则为0条
if (flag != 0) { //若查询出的记录不为0,则进行跳转操作
Intent intent = new Intent();
intent.setClass(MainActivity.this, ZhuMainActivity.class); //设置页面跳转
SharedPreferences.Editor editor = sp2.edit();
cursor.moveToFirst(); //将光标移动到position为0的位置,默认位置为-1
String loginname = cursor.getString(0);
editor.putString("Loginname", loginname);
editor.commit(); //将用户名存到SharedPreferences中
startActivity(intent);
} else {
Toast.makeText(MainActivity.this, "用户名或密码错误!", Toast.LENGTH_LONG).show(); //提示用户信息错误或没有账号
}
}
});
btnreg.setOnClickListener(new View.OnClickListener() { //注册事件
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, RegisterActivity.class); //跳转到注册页面
startActivity(intent);
Toast.makeText(MainActivity.this, "前往注册!", Toast.LENGTH_SHORT).show();
}
});
}
}
package com.example.qimo;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
import java.util.List;
public class NotepadActivity extends Activity {
ListView listView;
List<NotepadBean> list;
SQLiteHelper mSQLiteHelper;
NotepadAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.shenghuo_jishiben_notepad);
//用于显示便签的列表
listView = (ListView) findViewById(R.id.listview);
ImageView add = (ImageView) findViewById(R.id.add);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(NotepadActivity.this,
RecordActivity.class);
startActivityForResult(intent, 1);
}
});
initData();
}
protected void initData() {
mSQLiteHelper= new SQLiteHelper(this); //创建数据库
showQueryData();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent,View view,int position,long id){
NotepadBean notepadBean = list.get(position);
Intent intent = new Intent(NotepadActivity.this, RecordActivity.class);
intent.putExtra("id", notepadBean.getId());
intent.putExtra("time", notepadBean.getNotepadTime()); //记录的时间
intent.putExtra("content", notepadBean.getNotepadContent()); //记录的内容
NotepadActivity.this.startActivityForResult(intent, 1);
}
});
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, final int
position, long id) {
AlertDialog dialog;
AlertDialog.Builder builder = new AlertDialog.Builder( NotepadActivity.this)
.setMessage("是否删除此事件?")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
NotepadBean notepadBean = list.get(position);
if(mSQLiteHelper.deleteData(notepadBean.getId())){
list.remove(position);
adapter.notifyDataSetChanged();
Toast.makeText(NotepadActivity.this,"删除成功",
Toast.LENGTH_SHORT).show();
}
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialog = builder.create();
dialog.show();
return true;
}
});
}
private void showQueryData(){
if (list!=null){
list.clear();
}
//从数据库中查询数据(保存的标签)
list = mSQLiteHelper.query();
adapter = new NotepadAdapter(this, list);
listView.setAdapter(adapter);
}
@Override
protected void onActivityResult(int requestCode,int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==1&&resultCode==2){
showQueryData();
}
}
}
package com.example.qimo;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.List;
public class NotepadAdapter extends BaseAdapter {
private LayoutInflater layoutInflater;
private List<NotepadBean> list;
public NotepadAdapter(Context context, List<NotepadBean> list){
this.layoutInflater=LayoutInflater.from(context);
this.list=list;
}
@Override
public int getCount() {
return list==null ? 0 : list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView==null){
convertView=layoutInflater.inflate(R.layout.shenghuo_jishiben_notepad_item_layout,null);
viewHolder=new ViewHolder(convertView);
convertView.setTag(viewHolder);
}else {
viewHolder=(ViewHolder) convertView.getTag();
}
NotepadBean noteInfo=(NotepadBean) getItem(position);
viewHolder.tvNoteoadContent.setText(noteInfo.getNotepadContent());
viewHolder.tvNotepadTime.setText(noteInfo.getNotepadTime());
return convertView;
}
class ViewHolder{
TextView tvNoteoadContent;;
TextView tvNotepadTime;
public ViewHolder(View view){
tvNoteoadContent=(TextView) view.findViewById(R.id.item_content);
tvNotepadTime=(TextView) view.findViewById(R.id.item_time);
}
}
}
package com.example.qimo;
public class NotepadBean {
private String id; //记录的id
private String notepadContent; //记录的内容
private String notepadTime; //保存记录的时间
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNotepadContent() {
return notepadContent;
}
public void setNotepadContent(String notepadContent) {
this.notepadContent = notepadContent;
}
public String getNotepadTime() {
return notepadTime;
}
public void setNotepadTime(String notepadTime) {
this.notepadTime = notepadTime;
}
}
package com.example.qimo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class RecordActivity extends Activity implements View.OnClickListener {
ImageView note_back;
TextView note_time;
EditText content;
ImageView delete;
ImageView note_save;
SQLiteHelper mSQLiteHelper;
TextView noteName;
String id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.shenghuo_jishiben_record);
note_back = (ImageView) findViewById(R.id.note_back);
note_time = (TextView)findViewById(R.id.tv_time);
content = (EditText) findViewById(R.id.note_content);
delete = (ImageView) findViewById(R.id.delete);
note_save = (ImageView) findViewById(R.id.note_save);
noteName = (TextView) findViewById(R.id.note_name);
note_back.setOnClickListener(this);
delete.setOnClickListener(this);
note_save.setOnClickListener(this);
initData();
}
protected void initData() {
mSQLiteHelper = new SQLiteHelper(this);
noteName.setText("添加记录");
Intent intent = getIntent();
if(intent!= null){
id = intent.getStringExtra("id");
if (id != null){
noteName.setText("修改记录");
content.setText(intent.getStringExtra("content"));
note_time.setText(intent.getStringExtra("time"));
note_time.setVisibility(View.VISIBLE);
}
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.note_back:
finish();
break;
case R.id.delete:
content.setText("");
break;
case R.id.note_save:
String noteContent=content.getText().toString().trim();
if (id != null){//修改操作
if (noteContent.length()>0){
if (mSQLiteHelper.updateData(id, noteContent, DBUtils.getTime())){
showToast("修改成功");
setResult(2);
finish();
}else {
showToast("修改失败");
}
}else {
showToast("修改内容不能为空!");
}
}else {
//向数据库中添加数据
if (noteContent.length()>0){
if (mSQLiteHelper.insertData(noteContent, DBUtils.getTime())){
showToast("保存成功");
setResult(2);
finish();
}else {
showToast("保存失败");
}
}else {
showToast("修改内容不能为空!");
}
}
break;
}
}
public void showToast(String message){
Toast.makeText(RecordActivity.this,message,Toast.LENGTH_SHORT).show();
}
}
package com.example.qimo;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentValues;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.example.qimo.utils.JDBCUtils;
public class RegisterActivity extends AppCompatActivity {
EditText usename,usepwd,usepwd2;
Button submit;
JDBCUtils mysql;
SQLiteDatabase db;
SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
usename = this.findViewById(R.id.usename); //用户名编辑框
usepwd = this.findViewById(R.id.usepwd); //设置初始密码编辑框
usepwd2 = this.findViewById(R.id.usepwd2); //二次输入密码编辑框
submit = this.findViewById(R.id.submit); //注册按钮
mysql = new JDBCUtils(this,"Userinfo",null,1); //建数据库
db = mysql.getReadableDatabase();
sp = this.getSharedPreferences("useinfo",this.MODE_PRIVATE);
submit.setOnClickListener(new View.OnClickListener() {
boolean flag = true; //判断用户是否已存在的标志位
@Override
public void onClick(View v) {
String name = usename.getText().toString(); //用户名
String pwd01 = usepwd.getText().toString(); //密码
String pwd02 = usepwd2.getText().toString(); //二次输入的密码
String sex = ""; //性别
if(name.equals("")||pwd01 .equals("")||pwd02.equals("")){
Toast.makeText(RegisterActivity.this, "用户名或密码不能为空!!", Toast.LENGTH_LONG).show();
}
else{
Cursor cursor = db.query("logins",new String[]{"usname"},null,null,null,null,null);
while (cursor.moveToNext()){
if(cursor.getString(0).equals(name)){
flag = false;
break;
}
}
if(flag==true){ //判断用户是否已存在
if (pwd01.equals(pwd02)) { //判断两次输入的密码是否一致,若一致则继续,不一致则提醒密码不一致
ContentValues cv = new ContentValues();
cv.put("usname",name);
cv.put("uspwd",pwd01);
db.insert("logins",null,cv);
SharedPreferences.Editor editor = sp.edit();
editor.putString("usname",name);
editor.putString("uspwd",pwd01);
editor.commit();
Intent intent = new Intent();
intent.setClass(RegisterActivity.this,MainActivity.class); //跳转到登录页面
startActivity(intent);
Toast.makeText(RegisterActivity.this, "注册成功!", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(RegisterActivity.this, "密码不一致!", Toast.LENGTH_LONG).show(); //提示密码不一致
}
}
else{
Toast.makeText(RegisterActivity.this, "用户已存在!", Toast.LENGTH_LONG).show(); //提示密码不一致
}
}
}
});
}
}
package com.example.qimo;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
import java.util.List;
public class SQLiteHelper extends SQLiteOpenHelper {
private SQLiteDatabase sqLiteDatabase;
//创建数据库
public SQLiteHelper(Context context){
super(context, DBUtils.DATABASE_NAME, null, DBUtils.DATABASE_VERION);
sqLiteDatabase = this.getWritableDatabase();
}
//创建表
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table "+DBUtils.DATABASE_TABLE+"("+DBUtils.NOTEPAD_ID+
" integer primary key autoincrement,"+ DBUtils.NOTEPAD_CONTENT +
" text," + DBUtils.NOTEPAD_TIME+ " text)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
//添加数据
public boolean insertData(String userContent,String userTime){
ContentValues contentValues=new ContentValues();
contentValues.put(DBUtils.NOTEPAD_CONTENT,userContent);
contentValues.put(DBUtils.NOTEPAD_TIME,userTime);
return
sqLiteDatabase.insert(DBUtils.DATABASE_TABLE,null,contentValues)>0;
}
//删除数据
public boolean deleteData(String id){
String sql=DBUtils.NOTEPAD_ID+"=?";
String[] contentValuesArray=new String[]{String.valueOf(id)};
return
sqLiteDatabase.delete(DBUtils.DATABASE_TABLE,sql,contentValuesArray)>0;
}
//修改数据
public boolean updateData(String id,String content,String userYear){
ContentValues contentValues=new ContentValues();
contentValues.put(DBUtils.NOTEPAD_CONTENT,content);
contentValues.put(DBUtils.NOTEPAD_TIME,userYear);
String sql=DBUtils.NOTEPAD_ID+"=?";
String[] strings=new String[]{id};
return
sqLiteDatabase.update(DBUtils.DATABASE_TABLE,contentValues,sql,strings)>0;
}
//查询数据
public List<NotepadBean> query(){
List<NotepadBean> list=new ArrayList<NotepadBean>();
Cursor cursor=sqLiteDatabase.query(DBUtils.DATABASE_TABLE,null,null,null,
null,null,DBUtils.NOTEPAD_ID+" desc");
if (cursor!=null){
while (cursor.moveToNext()){
NotepadBean noteInfo=new NotepadBean();
String id = String.valueOf(cursor.getInt
(cursor.getColumnIndex(DBUtils.NOTEPAD_ID)));
String content = cursor.getString(cursor.getColumnIndex
(DBUtils.NOTEPAD_CONTENT));
String time = cursor.getString(cursor.getColumnIndex
(DBUtils.NOTEPAD_TIME));
noteInfo.setId(id);
noteInfo.setNotepadContent(content);
noteInfo.setNotepadTime(time);
list.add(noteInfo);
}
cursor.close();
}
return list;
}
}
package com.example.qimo;
import androidx.appcompat.app.AppCompatActivity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.TextView;
public class startActivity extends AppCompatActivity {
SharedPreferences sp;
TextView showhello;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
sp = this.getSharedPreferences("username", this.MODE_PRIVATE); //获取sharepreferences
showhello = this.findViewById(R.id.mainword); //显示欢迎
showhello.setText("欢迎你!"+sp.getString("Loginname","")); //获取用户名
}
}
package com.example.qimo;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.TextView;
import android.app.DatePickerDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.GnssAntennaInfo;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.Calendar;
public class XiuGaixinxiActivity extends AppCompatActivity { ;
SharedPreferences sp;
TextView showhello;
private AlertDialog dlg;
private TextView tv_user;
private ImageView btn_user;
private AlertDialog dlg_phone;
private TextView tv_phone;
private ImageView btn_phone;
private AlertDialog dlg_lable;
private TextView tv_lable;
private ImageView btn_lable;
private AlertDialog dlg_per;
private TextView tv_per;
private ImageView btn_per;
private AlertDialog dlg_sex;
private TextView tv_sex;
private ImageView btn_sex;
private int flag=0;
private int choice=0;
private TextView tv_birth;
private ImageView btn_birth;
private DatePickerDialog dlg_birth;
private Button btn_exit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xiugaixinxi_main);
sp = this.getSharedPreferences("username", this.MODE_PRIVATE); //获取sharepreferences
showhello = this.findViewById(R.id.mainword); //显示欢迎
showhello.setText("欢迎你!"+sp.getString("Loginname","")); //获取用户名
tv_user=findViewById(R.id.tv_user);
btn_user=findViewById(R.id.btn_user);
tv_phone=findViewById(R.id.tv_phone);
btn_phone=findViewById(R.id.btn_phone);
tv_lable=findViewById(R.id.tv_lable);
btn_lable=findViewById(R.id.btn_lable);
tv_per=findViewById(R.id.tv_per);
btn_per=findViewById(R.id.btn_per);
tv_sex=findViewById(R.id.tv_sex);
btn_sex=findViewById(R.id.btn_sex);
tv_birth=findViewById(R.id.tv_birth);
btn_birth=findViewById(R.id.btn_birth);
btn_exit=findViewById(R.id.btn_exit);
Listener listener=new Listener();
btn_user.setOnClickListener(listener);
btn_phone.setOnClickListener(listener);
btn_lable.setOnClickListener(listener);
btn_per.setOnClickListener(listener);
btn_sex.setOnClickListener(listener);
btn_birth.setOnClickListener(listener);
btn_exit.setOnClickListener(listener);
}
class Listener implements View.OnClickListener{
@Override
public void onClick(View view) {
switch(view.getId()){
case R.id.btn_user:
View dlgview = LayoutInflater.from(XiuGaixinxiActivity.this).inflate(R.layout.activity_dialog_layout,null);
final EditText etname=dlgview.findViewById(R.id.etname);
Button btnok=dlgview.findViewById(R.id.btnok);
btnok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
tv_user.setText(etname.getText().toString());
dlg.dismiss();
}
});
dlg= new AlertDialog.Builder(XiuGaixinxiActivity.this)
.setView(dlgview)
.create();
dlg.show();
break;
case R.id.btn_phone:
View dlgview_phone = LayoutInflater.from(XiuGaixinxiActivity.this).inflate(R.layout.activity_dialog_layout,null);
final EditText etname_phone=dlgview_phone.findViewById(R.id.etname);
Button btnok_phone=dlgview_phone.findViewById(R.id.btnok);
btnok_phone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
tv_phone.setText(etname_phone.getText().toString());
dlg_phone.dismiss();
}
});
dlg_phone= new AlertDialog.Builder(XiuGaixinxiActivity.this)
.setView(dlgview_phone)
.create();
dlg_phone.show();
break;
case R.id.btn_lable:
View dlgview_lable = LayoutInflater.from(XiuGaixinxiActivity.this).inflate(R.layout.activity_dialog_layout,null);
final EditText etname_lable=dlgview_lable.findViewById(R.id.etname);
Button btnok_lable=dlgview_lable.findViewById(R.id.btnok);
btnok_lable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
tv_lable.setText(etname_lable.getText().toString());
dlg_lable.dismiss();
}
});
dlg_lable= new AlertDialog.Builder(XiuGaixinxiActivity.this)
.setView(dlgview_lable)
.create();
dlg_lable.show();
break;
case R.id.btn_per:
View dlgview_per = LayoutInflater.from(XiuGaixinxiActivity.this).inflate(R.layout.activity_dialog_layout,null);
final EditText etname_per=dlgview_per.findViewById(R.id.etname);
Button btnok_per=dlgview_per.findViewById(R.id.btnok);
btnok_per.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
tv_per.setText(etname_per.getText().toString());
dlg_per.dismiss();
}
});
dlg_per= new AlertDialog.Builder(XiuGaixinxiActivity.this)
.setView(dlgview_per)
.create();
dlg_per.show();
break;
case R.id.btn_sex:
final String sex[]={"女","男"};
//flag=0;
choice=0;
dlg_sex=new AlertDialog.Builder(XiuGaixinxiActivity.this)
.setTitle("请选择性别")
// .setMessage("this is a dialog")
//数组选项0:默认项的数组下标
.setSingleChoiceItems(sex, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Log.i("test",i+"");
flag=1;
choice=i;
}
})
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
if(flag==0){
tv_sex.setText(sex[0]);
}else{
tv_sex.setText(sex[choice]);
}
}
})
.create();
dlg_sex.show();
break;
case R.id.btn_birth:
Calendar cal=Calendar.getInstance();
int year=cal.get(Calendar.YEAR);
int month=cal.get(Calendar.MONTH);
int day=cal.get(Calendar.DAY_OF_MONTH);
dlg_birth=new DatePickerDialog(XiuGaixinxiActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
tv_birth.setText(i+"-"+(i1+1)+"-"+i2);
}
},year,month,day);
dlg_birth.show();
break;
case R.id.btn_exit:
Intent intent = new Intent(XiuGaixinxiActivity.this, MainActivity.class);
startActivity(intent); // 启动Intent
// 如果你希望XiuGaixinxiActivity在跳转到MainActivity后立即结束,可以添加以下代码
// finish();
break;
// 其他case语句...
default:
// 默认处理...
break;
}
}
}
}