如何在當前活動中獲取視圖(屬於另一個活動)的視圖的高度和寬度。例如, 。在活動中有一個按鈕,我必須藉助它的id來獲取活動二中的teh按鈕的屬性。 (我考慮過視圖,因爲它可以是ImageView,TextView,WebView或其他任何東西)。如何獲取視圖的高度和寬度?
在這裏,我粘貼我試過的代碼。
公共類SecAct延伸活動{
}
我能夠得到的價值,但我不能得到V的屬性(查看),即,高度,寬度或ID等我得到一個空指針異常。
如何在當前活動中獲取視圖(屬於另一個活動)的視圖的高度和寬度。例如, 。在活動中有一個按鈕,我必須藉助它的id來獲取活動二中的teh按鈕的屬性。 (我考慮過視圖,因爲它可以是ImageView,TextView,WebView或其他任何東西)。如何獲取視圖的高度和寬度?
在這裏,我粘貼我試過的代碼。
公共類SecAct延伸活動{
}
我能夠得到的價值,但我不能得到V的屬性(查看),即,高度,寬度或ID等我得到一個空指針異常。
首先從視圖的活動範圍內,例如:寬度和高度
Context context = FIRST_ACTIVITY.con;
Activity firstActivy = (Activity) context;
ViewGroup firstActivityView = firstActivy.getWindow().getDecorView().findViewById(android.R.id.content);
View DISIRED_VIEW = firstActivityView.findViewById(R.id.DISIRED_VIEW_ID);
最後,得到:
public static Context con;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_one);
con = this;
}
然後,在另一個活動:
int width = DISIRED_VIEW.getWidth();
int height = DISIRED_VIEW .getHeight();
也許這些值(寬度和高度)可以是0,所以你必須這樣做:
final int width, height;
DISIRED_VIEW.post(new Runnable() {
@Override
public void run() {
width = DISIRED_VIEW.getWidth();
height = DISIRED_VIEW.getHeight();
}
});
工程就像一個魔術。非常感謝老闆。 –
嘗試getMeasuredHeight()
方法
@Kuni是的,我也試過,但它顯示空指針異常。 –
@BaradwajAryasomayajula檢查類似的問題[鏈接](http://stackoverflow.com/questions/4142090/how-do-you-to-retrieve-dimensions-of-a-view-getheight-and-getwidth-always-r ) 它可以幫助你解決你的問題 – Kunu
你得到空指針異常東陽你尚未初始化的ArrayList butList1。初始化它並添加項目,然後使用它。像這個 -
butList1 = new ArrayList<Integer>();
butList1.add(findviewById(R.id.button_id));
我想沒有必要初始化butList1和我在createwidgets()函數中初始化它的任何方式。所以我認爲這不是錯誤。 –
究竟是哪裏** NPE ** ??電話號碼?? –
爲什麼你需要從上一次活動中獲得視圖的高度? –
'視圖v'必須爲'null'。檢查 – R9J