我刚刚进入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" />
答案 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类型,然后将其转换为按钮。
<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
处遇到新事,有些事情会让您感到困惑。我会通过这样做来创建按钮:
Button
。XML File
Listener
添加到您的Button
。id
属性添加到Button
。我会这样做。
配置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)