1. Are you ready for the Galaxy S20? Here is everything we know so far!

How to save data in external storage in csv file

Discussion in 'Android Development' started by kotzen8989, Jan 13, 2021 at 11:45 PM.

  1. kotzen8989

    kotzen8989 Lurker
    Thread Starter

    Hello. I`m really apologize for maybe very simple questions for android studio. Actually I`m beginner in android studio, before that made just project like "Hello World". So, decide to make 3 objects for text view , 3 objects for edit text and just one button [![][1]][1]for saving entered characters in csv file. Searched explanation in internet but had just sample for TxT files. So I changed program code from this sample,
    and finally it saving in csv file, but I think it recognized yet as txt file, as solid text without 3 objects(text view) and also it just rewriting data instead previous file. I will send you the sauce and image for csv file (desired result) below. Please help me to decide this problem.

    (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:eek:rientation="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:eek:rientation="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);


    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");

    }
    }
     

    Attached Files:




    1. Download the Forums for Android™ app!


      Download

       
Loading...

Share This Page

Loading...