如何使用android studio创建两个android按钮

时间:2015-09-09 01:42:15

标签: java android xml

我刚刚进入Android应用程序,我还没有找到一个教程,详细解释如何做任何事情。可以有人向我展示如何在android中创建两个按钮(登录和注册)的代码?

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        loginButton=(Button)findViewById(R.id.button);
        button.setOnClickListener(LogInListener);

        signUpButton=(Button)findViewById(R.id.button2);
        button2.setOnClickListener(SignUpListener);
    }

private OnClickListener LogInListener=new OnClickListener()
    {
        public void onClick(View v)
        {

        }
    }

这是正确的实施方式吗?感谢

activity_main.xml中

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Log In"
        android:id="@+id/button"
        android:layout_marginTop="61dp"
        android:layout_below="@+id/textView3"
        android:layout_toStartOf="@+id/button2"
        android:layout_toLeftOf="@+id/button2" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sign UP"
        android:id="@+id/button2"
        android:layout_alignTop="@+id/button"
        android:layout_alignLeft="@+id/editText2"
        android:layout_alignStart="@+id/editText2"
        android:layout_marginLeft="48dp"
        android:layout_marginStart="48dp" />

3 个答案:

答案 0 :(得分:1)

编辑:

现在你已经编辑了你的问题,你只需要再做一件事来将你的Buttons声明为实例变量。在所有方法(onCreate)之外但在mainActivity中声明它们。

预编辑:

我将向您展示您的主要活动(Java类)以及您的布局(XML文件)的外观:

主要活动:

public class MainActivity extends AppCompatActivity {

Button signIn, signUp;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    signIn = (Button) findViewById(R.id.'idOfButtonFromXMLLayout');
    signUp = (Button) findViewById(R.id.'idOfButtonFromXMLLayout');

    //Looking at my XML code, the signIn id would be R.id.signInButton
}

findViewById方法继承自AppCompatActivity类,所有活动都扩展了AppCompatActivity类。较旧版本的android只是扩展了Activity类。

findViewById方法更具体地将int参数作为id。

需要强制转换的原因是因为您假设的findViewById方法返回一种View类型,然后将其转换为按钮。

XML布局文件:

   <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="@dimen/activity_vertical_margin"
        tools:context=".MainActivity">

    <Button
        android:id="@+id/signInButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sign In" 
        <!-- Complete Layout Details-->               />

    <Button
        android:id="@+id/signUpButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/signUpText"
        <!-- Complete Layout Details-->   />

</RelativeLayout>

在上面的代码中,我用两种方式表示了按钮的文字......

1)硬编码字符串&#34;登录&#34;

2)字符串资源&#34; @ string / signUpText

最好将硬编码字符串更改为后一种格式。

答案 1 :(得分:1)

如果您在Android Development处遇到新事,有些事情会让您感到困惑。我会通过这样做来创建按钮:

  1. Button
  2. 中定义XML File
  3. Listener添加到您的Button
  4. 不要忘记将id属性添加到Button
  5. 我会这样做。

    配置XML文件

    <Button
        android:id="@+id/buttonOne"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button One" />
    
    <Button
        android:id="@+id/buttonTwo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button 2"  />
    

    <强> MainActivity.java

    public class MainActivity extends AppCompatActivity implements View.onClickListener {
    
    private Button buttonOne;
    private Button buttonTwo;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        buttonOne = (Button) findViewById(R.id.buttonOne); // id located in your xml file
        buttonOne.setOnClickListener(this);
        buttonTwo = (Button) findViewById(R.id.buttonTwo);
        buttonTwo.setOnCliclListener(this);
    }
    
        private void onClick(View v){
            switch(v.getId()) {
                case r.id.buttonOne: {
                    // action when buttonOne is clicked
                    break;
                }
                case r.id.buttonTwo: {
                    // action when buttonTwo is clicked
                    break;
                }
            }
        }
    

答案 2 :(得分:0)

要创建按钮,您必须在xml文件中编码,或者在设计视图中将其拖动,这将为您执行此操作

enter image description here

使用自动生成的值,您将自动执行此操作。

- 命名你的按钮编辑android:text

-edit android:id用于编辑将xml中的按钮设计连接到java

的“键”

enter image description here

如果你想将你的按钮用于像onclicklisteners这样的东西,你需要将它“导入”你的java代码,就像这样。 android:id =“@ /&lt;&gt; value”和findViewById(R.id。)应该是相同的(虽然它不在照片中)

enter image description here

现在,只需为您想要的每个按钮再次执行此操作,并根据需要更改值。希望我帮忙。