![](/img/trans.png)
[英]How to get string value of TextView from an Activity to external non-activity class in Android
[英]Change TextView value from Non-Activity class
我正在尝试通过扩展textview所在的布局来将非活动类的setText设置为TextView的新值,但是我仍然无法成功,尽管我能够让Text获得电视的当前值。 这是代码:
LayoutInflater mInflater = (LayoutInflater) mContext.getSystemService(mContext.LAYOUT_INFLATER_SERVICE);
View view = mInflater.inflate(R.layout.target_details, null);
TextView val = (TextView) view.findViewById(R.id.val);
不知道我是否做得正确。
更新:我使用凯的答案与下面添加的代码。 现在正在工作。
((Activity)mContext).runOnUiThread(new Runnable(){
@Override
public void run(){
//settext here
}
});
您想要从非活动类为TextView设置文本
您可以通过2种方式来实现。
1.在启动非活动类时传递您的活动,并在将文本设置为TextView时使用该活动。
public class YourClass(){
Activity a;
public YourClass(Activity activity){
this.a=activity;
}
}
2.您可以将Activity传递给设置文本的方法
public static void displayText(Activity activity, int id, String text) {
TextView tv = (TextView) activity.findViewById(id);
tv.setText(text);
}
例如: displayText(YourActivity.this,R.id.your_text_view,"Text you want to display");
在适配器/非活动类中创建新对象不是一个好主意。 Activity中必须已经有一个TextView类的对象。
如果有必要更改其他类的文本,则可以在Activity中将TextView设置为静态,然后从适配器访问它,例如
活动:-
Static TextView val = (TextView) view.findViewById(R.id.val);
适配器:-
MyActivity.val.setText("some txt");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.