处理从 asynctask 获取文本的 textview
Posted
技术标签:
【中文标题】处理从 asynctask 获取文本的 textview【英文标题】:Handle textview that takes text from asynctask 【发布时间】:2017-09-04 16:09:08 【问题描述】:我有一个名为 tv 的文本视图,它从网页中获取内容。我想在按钮单击时存储该文本视图的内容,但我不希望一天的内容覆盖前一天的内容(例如今天 tv=ok 和明天 tv=ok1 ,我想存储 ok和 ok1 不仅 ok1) 当然,通过共享偏好,我可以存储该文本,但我不想覆盖前一天的文本
TextView tv = (TextView) findViewById(R.id.oks); tv.setText(result[1].toString());
//in pass there is the text of tv(in main activity)
SharedPreferences ok = getSharedPreferences("pass", 0);
String str = ""+ok.getString("textvalue","");
SharedPreferences.Editor editor = ok.edit();
editor.putString("textvalue",str);
editor.apply();
TextView textView=(TextView) findViewById(R.id.preferiti);
textView.setText(ok.getString("textvalue",""));
【问题讨论】:
如果您存储在 sharedPref 中然后获取它的值附加您的新值并再次存储它 我是android的初学者,你能举个例子吗?谢谢 检查这个:- developer.android.com/training/basics/data-storage/… 从 String 读取 str = sharedPref.getString("YOUR_KEY","DEFAULT_VALUE")+"today value" 现在再次将 str 保存在 sharedprefence 中 最后一件事。为了在 sharedpreference 中保存 str 我必须使用此方法 SharedPreferences sharedPref = context.getSharedPreferences( str, Context.MODE_PRIVATE) 【参考方案1】:这是你的文本视图
//this are two fields which you want to append and getting somehow from API
String todayTv="ok" , tomorrowTv="ok1";
TextView tv = (TextView) findViewById(R.id.oks);
让我们在 textView 上设置 todayTv 值
tv.setText(todayTv);
现在你想存储这个值
SharedPreference sharedPref= getSharedPreferences("pass", 0);
Editor edit=sharedPref.edit();
edit.putString("textvalue",tv.getText().toString()); //getting value from textview
edit.apply();
已保存!假设你现在有明天的电视,你想用你以前的结果显示它,比如这样 ok ok1
tv.setText(sharedPref.getString("textvalue","")+" "+tomorrowTv); //Concat strings and set text
旧值 - sharedPref.getString("textvalue","")
新价值 - 明天电视
现在用上面的代码再次保存以备将来使用
SharedPreference sharedPref= getSharedPreferences("pass", 0);
Editor edit=sharedPref.edit();
edit.putString("textvalue",tv.getText().toString()); //It will give you final string containg old and new value into one string
edit.apply();
希望它能让你深入了解它。
阅读更多:https://developer.android.com/training/basics/data-storage/shared-preferences.html https://developer.android.com/reference/android/widget/TextView.html
【讨论】:
唯一的问题是我没有 2 个单独的字符串...我只有一个由 asynktask 填充的字符串并且它每天都在变化.. 也许我不能共享首选项,我必须使用 sq 数据库? 这取决于您的要求,但如果您想从异步任务中存储值,请将其直接存储在您的共享首选项中。并取回它。希望对您有所帮助。以上是关于处理从 asynctask 获取文本的 textview的主要内容,如果未能解决你的问题,请参考以下文章
JSONArray 到 ListView - AsyncTask
在 AsyncTask 中使用 Picasso 从 URL 获取位图
我想在进度条文本(变量)中显示处理数据,这在 AsyncTask 类的doingBackground()方法中发生了变化[关闭]