按下按钮时触发要执行的动作

时间:2019-12-02 11:03:14

标签: java android

刚刚开始通过Android Studio学习Java以进行应用程序开发。创建一个应用程序来收集用户的输入,其中包括用户的姓名和年龄,单击“提交”按钮时,输出是基于其年龄范围的字符串。下面的代码:

public class MainActivity extends AppCompatActivity {

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

    // Adding Action to the Button
    Button BtnSubmit = findViewById(R.id.BtnSubmit);
    BtnSubmit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String TbName = "";
            int TbAge =0;
            String TxtOuput;

            if (TbAge>0 && TbAge<=18)
            {
                TxtOuput = TbName + ("You Are Still A Child");
            }
            else if(TbAge>18 && TbAge<=64)
            {
                TxtOuput = TbName + ("You Are Grown");
            }
            else if(TbAge>64)
            {
                TxtOuput = TbName + ("You Are About To Die") + ("R.I.P");
            }

        }
    });
}

}

尝试了来自google,youtube和其他来源的各种方法,但该应用程序仍不会执行输出。 Application layout/blueprint:

3 个答案:

答案 0 :(得分:0)

根据您的问题,希望用户在editText字段中添加其姓名和年龄。单击“提交”按钮时,应在下一个屏幕(活动)上显示输入的数据。

要实现此目标:

在xml布局文件中使用2个editText字段和1个按钮。

问题: 您仅在布局文件中添加了按钮视图,而不是editText。

让我知道您是否想要相同的代码。

答案 1 :(得分:0)

使用onclick侦听器的最佳简便方法, 在您的xml布局中,

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".activity.MainActivity">
<TextView
android:layout_width="wrap_content"
    android:layout_height="wrap_content"
android:onclick="goToMethod"/>
</LinearLayout>

在您的活动中,

class MainActivity extends Activity{
public void goToMethod(View view){
//do your code here
}
}

注意:在tools:context中,您应该提及您使用布局和onclick的活动

答案 2 :(得分:0)

您不会在共享代码的任何地方获取变量中的文本字段值。同样,您也不会将这些值设置回“状态”文本字段。

所以应该是这样的:

如果我假设您有名称的firstEditText EditText视图,年龄的secondEditEdit和status的resultTextView,那么您的代码将如下所示:

public class MainActivity extends AppCompatActivity {

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

    // Adding Action to the Button
    Button BtnSubmit = (Button)findViewById(R.id.BtnSubmit);
    EditText firstEditText = (EditText) findViewById(R.id.firstEditText);
    EditText secondEditText = (EditText) findViewById(R.id.secondEditText);
    TextView resultTextView = (TextView) findViewById(R.id.resultTextView);

    BtnSubmit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String TbName = firstEditText.getText();

            int TbAge = Integer.parseInt(secondEditText.getText().toString());
            String TxtOuput;

            if (TbAge>0 && TbAge<=18)
            {
                TxtOuput = TbName + ("You Are Still A Child");
            }
            else if(TbAge>18 && TbAge<=64)
            {
                TxtOuput = TbName + ("You Are Grown");
            }
            else if(TbAge>64)
            {
                TxtOuput = TbName + ("You Are About To Die") + ("R.I.P");
            }
            resultTextView.setText(TxtOuput);

        }
    });
}

}

尝试一下,让我知道