[英]How to pass the value of variables from inside an override method to outside it in Android studio
我遇到了麻煩,在 android studio 中測量以編程方式創建的 LinearLayout 的高度和寬度,我采用了以下解決方案
Public class MainActivity extends AppCompatActivity {
private static final String TAG = "MyActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final LinearLayout layout = new LinearLayout(context.this);
layout.post(new Runnable() {
@Override
public void run() {
int width = layout.getWidth();
int height = layout.getHeight();
}
}
}
我遇到的問題是我無法在覆蓋方法之外檢索這些變量的值。 我試過在像這樣的覆蓋方法之外創建單獨的變量
final LinearLayout layout = new LinearLayout(context.this);
final int width;
final int height;
layout.post(new Runnable() {
@Override
public void run() {
width = layout.getWidth();
height = layout.getHeight();
}
}
Log.d(TAG, "width is "+ width.ToString())
但即使在這種情況下,如果在覆蓋方法之外調用,寬度 = 0。 所以我的問題是,有沒有辦法在覆蓋方法之外傳遞變量的值,或者在 onCreate 方法中調用布局時是否有不同的方法來測量布局的高度/寬度
在 onCreate 方法之外聲明寬度和高度
公共類 MainActivity 擴展 AppCompatActivity {
int width;
int height;
private static final String TAG = "MyActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final LinearLayout layout = new LinearLayout(context.this);
layout.post(new Runnable() {
@Override
public void run() {
width = layout.getWidth();
height = layout.getHeight();
}
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.