如何正确地将我的语法从字符串转换为数组

时间:2018-07-01 15:18:16

标签: java android arrays string

我正在android studio中创建一个项目。我的目标是:当我单击“加载”按钮时,我希望edittextName + edittextPhone字符串中的数据重新调用以前保存的数据,并在应用程序关闭并重新打开后偿还。

当我尝试运行我的项目时,出现错误消息“ 找到数组,需要字符串

我相信我所要做的就是将[]更改为get()命令,但是不知道使用正确的语法。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_favourite);


    editTextName = (EditText) findViewById(R.id.nameText);
    editTextPhone = (EditText) findViewById(R.id.phoneText);

    file = new File(this.getFilesDir(), FILE_NAME);

}

public void save(View v) {
    String data = editTextName.getText().toString() + "|" + editTextPhone.getText().toString();
    try {
        outputStream = new FileOutputStream(file);
        outputStream.write(data.getBytes());
        outputStream.close();
        Toast.makeText(this, "Your Barcrawl has been saved!", Toast.LENGTH_LONG).show();
    } catch (Exception e) {
        e.printStackTrace();

    }


}

public void load(View v) {
    int length = (int) file.length();
    byte[] bytes = new byte[length];
    try {
        inputStream = new FileInputStream(file);
        inputStream.read(bytes);
        inputStream.close();
        String data = new String(bytes);
        editTextName.setText(data.split("\\|"[0])); // << problem
        editTextPhone.setText(data.split("\\|"[1])); // << problem
        Toast.makeText(getBaseContext(), "data loaded", Toast.LENGTH_SHORT).show();
    } catch (Exception e) {
        e.printStackTrace();
    }

我是android studio的新手,已经被困了一段时间,请帮忙。

1 个答案:

答案 0 :(得分:0)

data.split("\\|")返回String[],您可以将其更改为:

editTextName.setText(data.split("\\|")[0]);  
editTextPhone.setText(data.split("\\|")[1]);