parent
c8c1d5553a
commit
950a7cb6f1
@ -0,0 +1,232 @@
|
||||
package com.example.musicwork.freeModel;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Color;
|
||||
import android.os.Environment;
|
||||
import android.provider.MediaStore;
|
||||
//import android.support.annotation.IdRes;
|
||||
//import android.support.v4.app.NotificationCompat;
|
||||
//import android.support.v4.view.LayoutInflaterCompat;
|
||||
//import android.support.v7.app.AlertDialog;
|
||||
//import android.support.v7.app.AppCompatActivity;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.RadioGroup;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
|
||||
import com.example.musicwork.Data;
|
||||
import com.example.musicwork.R;
|
||||
import com.example.musicwork.SignIn;
|
||||
|
||||
import org.json.JSONException;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class InitActivity extends AppCompatActivity {
|
||||
|
||||
String username ;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_init);
|
||||
final Data data = (Data)getApplication();
|
||||
username = data.getUsername();
|
||||
btnInit();
|
||||
}
|
||||
|
||||
//进行动态权限申请
|
||||
private static final int REQUEST_EXTERNAL_STORAGE = 1;
|
||||
private static String[] PERMISSIONS_STORAGE = {
|
||||
"android.permission.READ_EXTERNAL_STORAGE",
|
||||
"android.permission.WRITE_EXTERNAL_STORAGE" };
|
||||
|
||||
public void verifyStoragePermissions() {
|
||||
try {
|
||||
//检测是否有写的权限
|
||||
int permission = ActivityCompat.checkSelfPermission(InitActivity.this,
|
||||
"android.permission.READ_EXTERNAL_STORAGE");
|
||||
if (permission != PackageManager.PERMISSION_GRANTED) {
|
||||
// 没有写的权限,去申请写的权限,会弹出对话框
|
||||
ActivityCompat.requestPermissions(InitActivity.this, PERMISSIONS_STORAGE,REQUEST_EXTERNAL_STORAGE);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
//创建弹窗,显示文件名
|
||||
public void showFileName(ArrayList<String> list){
|
||||
LinearLayout fileList = new LinearLayout(this);
|
||||
fileList.setOrientation(LinearLayout.VERTICAL);
|
||||
TextView hintText = new TextView(this);
|
||||
hintText.setText("请选择想要打开的音乐文件:");
|
||||
hintText.setTextColor(Color.BLACK);
|
||||
hintText.setTextSize(15);
|
||||
fileList.addView(hintText);
|
||||
|
||||
Dialog dialog = new Dialog(this);
|
||||
for(int i=0;i<list.size();i++){
|
||||
TextView fileName = new TextView(this);
|
||||
fileName.setText(list.get(i));
|
||||
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
|
||||
params.setMargins(10,5,0,5);
|
||||
fileName.setLayoutParams(params);
|
||||
|
||||
fileList.addView(fileName);
|
||||
|
||||
//监听
|
||||
fileName.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
TextView textView = (TextView)v;
|
||||
String fileName = textView.getText().toString();
|
||||
try {
|
||||
if(FileServiceDownload.downloadForm(fileName)){
|
||||
// String string = sentFile(fileName);
|
||||
Toast.makeText(getApplicationContext(),"下载文件成功",Toast.LENGTH_SHORT).show();
|
||||
|
||||
sentFile(fileName);
|
||||
//Log.e("Init content:",string);
|
||||
}else{
|
||||
Toast.makeText(getApplicationContext(),"下载文件失败",Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
//创建弹窗
|
||||
|
||||
dialog.setContentView(fileList);
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//将文件内容传入主活动
|
||||
public void sentFile(String filename) throws IOException {
|
||||
verifyStoragePermissions();
|
||||
|
||||
Bundle bundle = new Bundle();
|
||||
Intent intent = new Intent(InitActivity.this,FreemdActivity.class);//传递输入数据
|
||||
bundle.putString("flag","open");
|
||||
|
||||
List<MusicNote> noteList = new ArrayList<>();
|
||||
String path=Environment.getExternalStorageDirectory().getPath()+"/Music/"+filename;
|
||||
String environment = Environment.getExternalStorageState();
|
||||
if(Environment.MEDIA_MOUNTED.equals(environment)) {
|
||||
//读文件
|
||||
File file = new File(path);
|
||||
|
||||
FileInputStream fis = new FileInputStream(file);
|
||||
Log.e("filepath:", file.getPath());
|
||||
DataInputStream in = new DataInputStream(fis);
|
||||
//StringBuilder content = new StringBuilder();
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
|
||||
String line;
|
||||
String mydata = "";
|
||||
int i = 0;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
String[] strarray = line.split(" ");
|
||||
bundle.putStringArray("note"+i,strarray);
|
||||
i += 1;
|
||||
//mydata = mydata + line;
|
||||
/*int note = Integer.parseInt(strarray[0]);
|
||||
float beat = Float.parseFloat(strarray[1]);
|
||||
MusicNote musicNote = new MusicNote(note,beat);
|
||||
noteList.add(musicNote);*/
|
||||
//Log.e("mydata:", " "+strarray[1]);
|
||||
}
|
||||
bundle.putInt("length",i);//存储读出的音符列表的长度
|
||||
}
|
||||
//将数据发送到主活动
|
||||
intent.putExtras(bundle);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
private void btnInit(){
|
||||
Button createMusic = (Button)findViewById(R.id.create_music);
|
||||
Button openMusic = (Button)findViewById(R.id.open_score);
|
||||
|
||||
//打开文件按钮的监听
|
||||
openMusic.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ArrayList<String> list = new ArrayList<String>();
|
||||
try {
|
||||
list=CheckFileList.CheckFileList(SignIn.author_name);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
showFileName(list);//显示文件列表
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//新建按钮的监听
|
||||
createMusic.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
//弹出窗口
|
||||
final Intent intent = new Intent(InitActivity.this,FreemdActivity.class);//传递输入数据
|
||||
LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
|
||||
final View view = inflater.inflate(R.layout.create_layout,null);//加载新建界面布局
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(InitActivity.this);//创建弹出框
|
||||
builder.setView(view);//设置弹出框界面
|
||||
builder.setTitle("新建简谱").setPositiveButton("确定", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {//接收输入框输入的信息
|
||||
final Bundle bundle = new Bundle();
|
||||
|
||||
EditText musicNameView = (EditText)view.findViewById(R.id.music_name);
|
||||
String musicName = musicNameView.getText().toString();//音乐名
|
||||
|
||||
final RadioGroup musicBeatGroup = (RadioGroup)view.findViewById(R.id.music_beat);
|
||||
RadioButton musicBeatBtn = (RadioButton)view.findViewById(musicBeatGroup.getCheckedRadioButtonId());//被选中的单选按钮
|
||||
String musicBeat = musicBeatBtn.getText().toString();//音乐拍号
|
||||
//存入bundle
|
||||
bundle.putString("flag","init");
|
||||
bundle.putString("musicName",musicName);
|
||||
bundle.putString("musicBeat",musicBeat);
|
||||
|
||||
intent.putExtras(bundle);
|
||||
dialog.cancel();//关闭弹出框
|
||||
startActivity(intent);
|
||||
}
|
||||
}).create().show();
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Reference in new issue