簡體   English   中英

將布局首選項應用於 android 無線電組中動態添加的按鈕

[英]applying layout preferences to dynamically added buttons in android radiogroup

我試圖研究所有可能的答案,但我真的不知道如何繼續。 我正在動態地將單選按鈕創建到單選組中

for (int i = 0; i < keys.length; i++) {
        final RadioButton rdbtn = new RadioButton(this);
        rdbtn.setId(View.generateViewId());
        rdbtn.setText(keys[i]);
        rdbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                selectedWH = rdbtn.getText().toString();
            }
        });
        mRgAllButtons.addView(rdbtn);
    }

我想將此樣式應用於按鈕

<RadioButton

            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_marginStart="60dp"
            android:layout_marginEnd="60dp"
            android:background="@drawable/radio_pressed"
            android:button="@android:color/transparent"                
            android:textAlignment="center"
            android:textColor="@color/colorPrimary"
            android:textSize="18sp"
            android:textStyle="bold" />

非常感謝任何幫助。

ViewGroup.MarginLayoutParams marginLayoutParams = new ViewGroup.MarginLayoutParams(yourWidth, yourHeight);
    marginLayoutParams.leftMargin = yourLeftMargin;
    marginLayoutParams.rightMargin = yourRightMargin;
    rdbtn.setLayoutParams(marginLayoutParams);

將此添加到您的代碼中,以便為您動態創建的視圖設置布局參數,您必須為其創建 LayoutParams。 在那里你可以設置任何你想要的邊距。

這是一個簡單的方法。 您可以從 XML 創建一個RadioButton視圖實例,以便它具有您想要的樣式。

  1. 使用RadioButton元素和樣式創建 XML 布局 - 正是您所提到的。
  2. 使用該布局創建一個新的 RadioButton 視圖(並將其添加到 RadioGroup)。

 LayoutInflater inflater = LayoutInflater.from(context);

 for (int i = 0; i < keys.length; i++) {
    final RadioButton rdbtn = inflater.inflate(R.layout.layout_name, mRgAllButtons, false);
    // mRgAllButtons - parent of this view.
    // attachToParent - false - add to the parent manually.
    rdbtn.setId(View.generateViewId());
    rdbtn.setText(keys[i]);
    rdbtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            selectedWH = rdbtn.getText().toString();
        }
    });
    mRgAllButtons.addView(rdbtn);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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