在Android java中实现按钮的不同方法有哪些?

时间:2014-07-02 10:35:02

标签: java android

我知道这两个:

  1. Button b = (Button) (findViewById(R.id.Button2));

  2. android:onClick=""

  3. 有没有不同的方式?

    我刚试过Button b = new Button();

    但它在android中无效!

    谢谢!

4 个答案:

答案 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"  
           />