从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,首先你应该像现在一样把它放在资产中。然后,当第一次启动应用程序时,将其从资产中提取到设备内存中