如何以编程方式将按钮添加到 android 中的 LinearLayout
How to add a button programmatically to a LinearLayout in android
如何在第二个 protected void finishButton 中使用 linearLayout 和 protected void onCreate 的 params 变量?我需要将 finishButton 添加到 linearLayout。这是我的代码:
public class MainActivity extends AppCompatActivity {
public static int score = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView);
final LinearLayout linearLayout = new LinearLayout(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
linearLayout.setLayoutParams(params);
linearLayout.setOrientation(linearLayout.VERTICAL);
linearLayout.setPadding(0, 110, 0, 0);
scrollView.addView(linearLayout);
TextView iq_Test_Title = new TextView(this);
iq_Test_Title.setText("Text");
iq_Test_Title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);
iq_Test_Title.setGravity(Gravity.CENTER);
iq_Test_Title.setTextColor(Color.RED);
linearLayout.addView(iq_Test_Title);
finishButton();
// other code
}
protected void finishButton() {
final Button finishButton = new Button(this);
finishButton.setText(R.string.finish_button);
finishButton.setLayoutParams(params);
linearLayout.addView(finishButton);
finishButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finishButton.setEnabled(false);
}
});
}
}
谢谢!
要访问finishButton
方法内部的视图,只需将其设为class级变量即可:
public class MyActivity...
private LinearLayout mLinearLayout;
protected void onCreate(..){
mLinearLayout = new LinearLayout(this);
...
}
private void finishButton(){
...
mLinearLayout.addView(..);
}
}
如果我没理解错的话,您可能想 return 将按钮从 finishButton() 发送给调用者。然后在onCreate中添加到视图中。
将 finishButton 的声明更改为
protected Button finishButton()
配置完成后,添加以下行:
return finishButton;
在该方法的末尾。然后在onCreate:
linearLayout.addView(finishButton());
如何在第二个 protected void finishButton 中使用 linearLayout 和 protected void onCreate 的 params 变量?我需要将 finishButton 添加到 linearLayout。这是我的代码:
public class MainActivity extends AppCompatActivity {
public static int score = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView);
final LinearLayout linearLayout = new LinearLayout(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
linearLayout.setLayoutParams(params);
linearLayout.setOrientation(linearLayout.VERTICAL);
linearLayout.setPadding(0, 110, 0, 0);
scrollView.addView(linearLayout);
TextView iq_Test_Title = new TextView(this);
iq_Test_Title.setText("Text");
iq_Test_Title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);
iq_Test_Title.setGravity(Gravity.CENTER);
iq_Test_Title.setTextColor(Color.RED);
linearLayout.addView(iq_Test_Title);
finishButton();
// other code
}
protected void finishButton() {
final Button finishButton = new Button(this);
finishButton.setText(R.string.finish_button);
finishButton.setLayoutParams(params);
linearLayout.addView(finishButton);
finishButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finishButton.setEnabled(false);
}
});
}
}
谢谢!
要访问finishButton
方法内部的视图,只需将其设为class级变量即可:
public class MyActivity...
private LinearLayout mLinearLayout;
protected void onCreate(..){
mLinearLayout = new LinearLayout(this);
...
}
private void finishButton(){
...
mLinearLayout.addView(..);
}
}
如果我没理解错的话,您可能想 return 将按钮从 finishButton() 发送给调用者。然后在onCreate中添加到视图中。
将 finishButton 的声明更改为
protected Button finishButton()
配置完成后,添加以下行:
return finishButton;
在该方法的末尾。然后在onCreate:
linearLayout.addView(finishButton());