如何从不活动的类中为TextView设置值?我们在未确定的时间获得的值,因此设置该类的值非常重要。
所有建议都会有所帮助。谢谢。
P.S。:
例如,在Actvity中我有方法,它将值设置为TextView。
public void textViewSetText (String value){
tv.setText(value);
} //how correctly to transfer value from my class to get the desired effect?
答案 0 :(得分:0)
如果你没有掌握你的Activity,那么它是不可能的,因为TextView在Activity中可用。所以当你没有参考活动时,你也无法改变它的内容。如果您将活动引用传递给静态方法,则该方法可以进行修改。
答案 1 :(得分:0)
通常,TextView的内容只应在活动中设置。虽然您可以在活动之外设置该值,但它并不十分有用。
至于你的问题,你在不确定的时间得到了值,有一些选择。例如,你可以注册一个回调到那个类,当另一个类得到那个值时,你可以发送一个消息打回来。但要注意线程问题,将值设置为TextView是一个UI操作,只能在UI线程中完成。
答案 2 :(得分:0)
AsyncTask
允许您在用户界面上执行异步工作。它在工作线程中执行阻塞操作,然后在UI线程上发布结果,而不需要您自己处理线程和/或处理程序。以下是一个例子:
public void onClick(View v) {
new SomeTask().execute(something);
}
private class SomeTask extends AsyncTask<Something, Void, String> {
/** The system calls this to perform work in a worker thread and
* delivers it the parameters given to AsyncTask.execute() */
protected Bitmap doInBackground(Something something) {
return string; // the TextView's text
}
/** The system calls this to perform work in the UI thread and delivers
* the result from doInBackground() */
protected void onPostExecute(String result) {
textView.setText(result);
}
}
但是,如果您不详细说明您的案例,则没有确切的答案可能会让您满意。
答案 3 :(得分:0)
您可以使用外部静态类来保存要修改的String的值(并在返回TextView_Class时设置值),只能访问静态类来获取值。
您也可以在静态类中保存“this”(Activity)并从任何地方访问该Activity,这样您就可以修改TextView。 (我不认为这会被推荐)。
根据具体情况(你没有解释过),正常的做法是捆绑字符串,如果它们是父子类。
答案 4 :(得分:0)
我不确定你的问题但是 尝试这样可能会起作用
((MainActivity) activity).textViewSetText();
public void textViewSetText (String value){
tv.setText(value);
}
但您的活动必须扩展MainActivity。