我需要從另一個未擴展Activity的類中的主Activity調用setContentView(int)。如何從未擴展的類使用setContentView(int)活動
在我的自定義類中,我得到了private Context context;
var從構造函數中傳遞的var,但我無法弄清楚如何使用context
變量訪問Activity方法。
我需要從另一個未擴展Activity的類中的主Activity調用setContentView(int)。如何從未擴展的類使用setContentView(int)活動
在我的自定義類中,我得到了private Context context;
var從構造函數中傳遞的var,但我無法弄清楚如何使用context
變量訪問Activity方法。
如果你的環境是活動類的一個實例,簡單的類轉換應該工作:
Activity a = (Activity) context;
a.setContentView(R.layout.your_layout);
一個解決方案(可能不是最優雅的)是將調用活動傳遞給另一個類,而不僅僅是上下文。
你將不得不在你正在使用的活動引用傳遞。
像這樣的事情
class ActivityA extends Activity{
@Override
public void onCreate(Bundle state){
super.onCreate(state);
ClassA myclass = new ClassA(this);
}
}
然後A類將有:
class ClassA {
public ClassA(Activity yourActivity){
... Get your view here ....
yourActivity.setContentView(view);
... do more things...
}
}
這應該工作,但我不知道爲什麼,佈局沒有被實際改變.. 我m調試和代碼到達那裏,顯然它被執行,但它沒有效果。 我只是在做: 活動a =(Activity)上下文; a.setContentView(R.layout.first); – sergi
有了這個解決方案,例如我可以從TextView中獲取文本,但我無法設置文本,因爲它沒有被設置。 – sergi
@sergi您確定它是在onCreate活動階段內執行的嗎? –