簡體   English   中英

如何在Android Studio中將變量的值從覆蓋方法內部傳遞到外部

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM