繁体   English   中英

从TXT文件Android C#Xamarin中删除行/字符串

[英]Remove line / string from TXT file Android c# Xamarin

我目前正在使用StreamReader从Assets中打开一个.txt文件,其中包含进入ListView的字符串行

我该如何做,以便当我点击列表视图项时,它会从文本文件中删除该行?

public class MainActivity : Activity
{
    ListView notesList;
    String[] notesArray;

    Stream stream;
    StreamReader streamReader;
    String line;

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        SetContentView(Resource.Layout.Main);
        ActionBar.Hide();

        //Notes
        notesList = FindViewById<ListView>(Resource.Id.lvNotes);

        //File name
        stream = Assets.Open("NotesData.txt");

        // Declare new List.
        List<string> lines = new List<string>();

        // Use using StreamReader for disposing.
        using (streamReader = new StreamReader(stream))
        {
            while ((line = streamReader.ReadLine()) != null)
            {
                lines.Add(line);
            }
        }

        notesArray = lines.ToArray();

        //Load ListView Data
        ArrayAdapter adapter = new ArrayAdapter(
            this, Android.Resource.Layout.SimpleExpandableListItem1, notesArray);

        notesList.Adapter = adapter;
        notesList.ItemClick += lvNotes_ItemSelected;
    }

    private void lvNotes_ItemSelected(object sender, AdapterView.ItemClickEventArgs e)
    {
        //Where I want the Line to be deleted!

        string toast = "Clicked: " + notesList.GetItemAtPosition(e.Position);
        Toast.MakeText(this, toast, ToastLength.Long).Show();

    }
}

Assets.Open("NotesData.txt"); 我假设您从应用程序资产中打开文件。 应用程序资产无法修改。 您可以修改的是文件系统中的文件。 如果要对文件系统中的文件执行相同的操作,只需在单击该项时从List<string> lines删除带有单击位置的List<string> lines ,然后将这些行覆盖到文件中即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM