Search code examples
androidandroid-layoutlistviewandroid-studioandroid-api-levels

how to save all data of listview in text format on button click


<TextView
    android:id="@+id/tv"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp"
    android:textColor="#000000"
    android:textSize="20sp"/>

i am new in android programming please guys help me.That how to save all data of Listview in text format on button click in our mobile

 static String[] city = {"Indore","Bhopal","Mumbai","Pune","Delhi","Kolkata",
        "Hyderabad","Banglore","Chennai","Amritsar","jhalandhar"};

Button button;
ListView listView;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button = (Button) findViewById(R.id.button);
    listView = (ListView) findViewById(R.id.lv);

    MyAdapter myadapter = new MyAdapter(getApplicationContext(),city);
    listView.setAdapter(myadapter);

Solution

  • Write this code on your button's click

    try {
            File myFile = new File("/sdcard/mysdfile.txt");
            myFile.createNewFile();
            FileOutputStream fOut = new FileOutputStream(myFile);
            OutputStreamWriter myOutWriter =
                    new OutputStreamWriter(fOut);
            for (int i = 0; i < city.length; i++) {
                myOutWriter.append(city[i] +"\n");    
            }
    
            myOutWriter.close();
            fOut.close();
            Toast.makeText(getBaseContext(),
                    "Done writing SD 'mysdfile.txt'",
                    Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
            Toast.makeText(getBaseContext(), e.getMessage(),
                    Toast.LENGTH_SHORT).show();
        }
    

    Note : Don't forget to give below permission in AndroidMenifest.xml

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />