Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从TXT文件Android c#Xamarin中删除行/字符串_C#_Android_Arrays_Listview_Xamarin - Fatal编程技术网

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

从TXT文件Android c#Xamarin中删除行/字符串,c#,android,arrays,listview,xamarin,C#,Android,Arrays,Listview,Xamarin,我目前正在使用StreamReader从包含字符串行的资产中打开.txt文件,并将其放入列表视图 如何使其在点击列表视图项时从文本文件中删除该行 public class MainActivity : Activity { ListView notesList; String[] notesArray; Stream stream; StreamReader streamReader; String line; protected overri

我目前正在使用
StreamReader
从包含字符串行的资产中打开
.txt
文件,并将其放入
列表视图

如何使其在点击列表视图项时从文本文件中删除该行

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

    }
}
公共类main活动:活动
{
列表视图注释列表;
字符串[]notesArray;
溪流;
StreamReader StreamReader;
弦线;
创建时受保护的覆盖无效(捆绑包)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
ActionBar.Hide();
//注释
notesList=FindViewById(Resource.Id.lvNotes);
//文件名
stream=Assets.Open(“NotesData.txt”);
//宣布新名单。
列表行=新列表();
//使用StreamReader进行处理。
使用(streamReader=新streamReader(stream))
{
而((line=streamReader.ReadLine())!=null)
{
行。添加(行);
}
}
notesArray=lines.ToArray();
//加载ListView数据
ArrayAdapter适配器=新的ArrayAdapter(
这是Android.Resource.Layout.SimpleExpandableListItem1,notesArray);
notesList.Adapter=适配器;
notesList.ItemClick+=lvNotes\u ItemSelected;
}
private void lvNotes_ItemSelected(对象发送者,AdapterView.ItemClickEventArgs e)
{
//我希望删除该行的位置!
string toast=“单击:”+notesList.GetItemAtPosition(e.Position);
Toast.MakeText(this,Toast,ToastLength.Long).Show();
}
}

Assets.Open(“NotesData.txt”)我假设您从应用程序资产打开文件。无法修改应用程序资产。您可以修改的是文件系统中的文件。如果要对文件系统中的文件执行相同的操作,只需在单击项目时从
列表行中删除具有单击位置的行,并将这些行覆盖到文件中即可。

Assets.Open(“NotesData.txt”)我假设您从应用程序资产打开文件。无法修改应用程序资产。您可以修改的是文件系统中的文件。如果要对文件系统中的文件执行相同的操作,只需在单击项目时从
列表行
中删除具有单击位置的行,并将这些行覆盖到文件中。

您是否要求更改资产?或者只是从您的
列表视图中删除了该行?更改资产。您是否要求更改资产?或者只是从您的
列表视图中删除了行
?更改资产。我应该将文件放在文件系统中的何处?哪一个在哪里?你可以把它们复制到SD卡上。请参见此处:@codeplast,例如进入应用程序的内部存储内存,或进入SD卡。。。或者你想去的任何地方。交易是,你不从资产中使用它,而是在应用程序第一次发布时将其提取到文件系统,然后从文件系统中使用它。哦,我明白了。。。如果我想使用应用程序的内部内存,我会把它放在Xamarin/visualstudio的哪个目录中?@codeplast,首先你应该像现在一样把它放在资产中。然后,当第一次启动应用程序时-将其从资产提取到设备内存我应该将文件放在哪里,放在文件系统中?哪一个在哪里?你可以把它们复制到SD卡上。请参见此处:@codeplast,例如进入应用程序的内部存储内存,或进入SD卡。。。或者你想去的任何地方。交易是,你不从资产中使用它,而是在应用程序第一次发布时将其提取到文件系统,然后从文件系统中使用它。哦,我明白了。。。如果我想使用应用程序的内部内存,我会把它放在Xamarin/visualstudio的哪个目录中?@codeplast,首先你应该像现在一样把它放在资产中。然后,当第一次启动应用程序时,将其从资产中提取到设备内存中