[英]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.