我知道这两个:
Button b = (Button) (findViewById(R.id.Button2));
android:onClick=""
有没有不同的方式?
我刚试过Button b = new Button();
但它在android中无效!
谢谢!
答案 0 :(得分:2)
1.Button b =(Button)(findViewById(R.id.Button2));
这为您提供了以XML格式定义的按钮的对象。
2.android:onClick = “”
此方法用于处理按钮点击事件,而不是用于创建按钮。
3.默认构造函数不可用 - new Button()
您需要在构造函数中传递上下文。
Button delete = new Button(context);
答案 1 :(得分:1)
您可以通过编程方式添加按钮,试试这个:
ViewGroup linearLayout = (ViewGroup) findViewById(R.id.linearLayoutID);
然后你可以创建一个新的按钮,只需添加它:
Button btn = new Button(this);
btn.setText("MyButton");
btn.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
linerLayout.addView(btn);
答案 2 :(得分:1)
请尝试这种方式,希望这有助于您解决问题。
<强> main.xml中强>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<Button
android:id="@+id/btnFromXml"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button From Xml"/>
<LinearLayout
android:id="@+id/lnrActivityButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp">
</LinearLayout>
</LinearLayout>
<强> MyActivity.java 强>
public class MyActivity extends Activity {
private Button btnFromXml;
private LinearLayout lnrActivityButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnFromXml = (Button) findViewById(R.id.btnFromXml);
lnrActivityButton = (LinearLayout) findViewById(R.id.lnrActivityButton);
btnFromXml.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MyActivity.this,"XML Button Clicked",Toast.LENGTH_SHORT).show();
}
});
Button btnFromActivty = new Button(this);
btnFromActivty.setText("Button From Activity");
btnFromActivty.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MyActivity.this,"Activity Button Clicked",Toast.LENGTH_SHORT).show();
}
});
lnrActivityButton.addView(btnFromActivty);
}
}
答案 3 :(得分:0)
您应该使用:
<强>编程:强>
Button b=new Button(this);
yourView.addView(b);
按Xml(使用布局)
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>