处理从 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

Vue{{}}v-textv-html区别和应用

在 AsyncTask 中使用 Picasso 从 URL 获取位图

添加新文本时,它出现在底部,其余文本上升

用于图像获取的AsyncTask不断被调用

我想在进度条文本(变量)中显示处理数据,这在 AsyncTask 类的doingBackground()方法中发生了变化[关闭]