Здраствуйте уважаемые профессионалы в разработке ПО на Android Studio. дело в том что я новичок в Android Studio и до этого сам смог написать только проекты наподобие Hello World , в этом проекте я решил добиться того чтобы мои данные 3 позиций сохранялись в csv файл, по этому поводу я нашел код, с помощью которого смог записать данные в txt, я попробывал поменять вид файла на csv. Данные сохранились, но к сожалению наверху не отображается три позиции(Name, Home address, Telephone number), а также сохраненная информация не разделяется на столбцы а пишется все слитно и к тому же перезаписывается на исходный файл, что тоже не сть хорошо. на всякий случай прикладываю фото сейчас и желаемого результатаочень прошу помочь мне решить эти моменты.
(1)activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/View"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp"
android:text="Name"
android:textSize="24sp"
android:textStyle="bold"/>
<EditText
android:id="@+id/editcsv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/edit_csv"
android:inputType="text" />
<TextView
android:id="@+id/View1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp"
android:text="home address"
android:textSize="24sp"
android:textStyle="bold"/>
<EditText
android:id="@+id/editcsv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/edit_csv1"
android:inputType="text" />
<TextView
android:id="@+id/View2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp"
android:text="telephone number"
android:textSize="24sp"
android:textStyle="bold" />
<EditText
android:id="@+id/editcsv2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/edit_csv2"
android:inputType="text" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/saveBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/save_csv" />
</LinearLayout>
</LinearLayout>
(2)strings.xml:
<resources>
<string name="app_name">ExternalStorageApp</string>
<string name="save_csv">save</string>
<string name="edit_csv">Please enter your name</string>
<string name="edit_csv1">Please enter your home address</string>
<string name="edit_csv2">Please enter your telephone number</string>
<string name="View">Name</string>
<string name="View1">home address</string>
<string name="View2">telephone number</string>
</resources>
(3)MainActivity.java
import android.os.Bundle;
import android.os.Environment;
import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import android.app.ListActivity;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText editText, editText1, editText2;
private Button saveBtn;
private String fileName = "mFile.csv";
private String filePath = "MyFileStorage";
private File mFile;
private String mData = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initilization
editText = (EditText) findViewById(R.id.editcsv);
editText1 = (EditText) findViewById(R.id.editcsv1);
editText2 = (EditText) findViewById(R.id.editcsv2);
saveBtn = (Button) findViewById(R.id.saveBtn);
saveBtn.setOnClickListener(this);
// check external storage
// and aviability for saving
if (!isAvailable() || isReadOnly()) {
// if unavailable set button as enabled
// for saving and reading
saveBtn.setEnabled(false);
} else {
// if available get files for ExternalStorage
mFile = new File(getExternalFilesDir(filePath), fileName);
}
}
// check external storage for reading
private static boolean isReadOnly() {
String storageState = Environment.getExternalStorageState();
return Environment.MEDIA_MOUNTED_READ_ONLY.equals(storageState);
}
// check availability for external storage
private static boolean isAvailable() {
String storageState = Environment.getExternalStorageState();
return Environment.MEDIA_MOUNTED.equals(storageState);
}
// simple method for pop up windows
public void showToast(String message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
@Override
public void onClick(View v) {
// entered datas for mData
mData = "" ;
try {
FileOutputStream fos = new FileOutputStream(mFile);
fos.write(editText.getText().toString().getBytes());
fos.write(editText1.getText().toString().getBytes());
fos.write(editText2.getText().toString().getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
showToast("Files was saved");
}
}
запись данных по нажатию кнопки в csv файл
-
- Сообщения: 1
- Зарегистрирован: 14 янв 2021, 07:19
запись данных по нажатию кнопки в csv файл
- Вложения
-
- ожидаемый результат
- csv file (changed).jpg (179.37 КБ) 633 просмотра
-
- Исходный файл при записи данных как пример
- csv file.jpg (176.38 КБ) 633 просмотра