Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在按下按钮时触发要执行的操作_Java_Android - Fatal编程技术网

Java 在按下按钮时触发要执行的操作

Java 在按下按钮时触发要执行的操作,java,android,Java,Android,刚开始通过Android Studio学习Java应用程序开发。创建一个收集用户输入的应用程序,其中包括用户的姓名和年龄,单击提交按钮时,输出是基于用户年龄范围的字符串。代码如下: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

刚开始通过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");
            }

        }
    });
}

}
public类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//向按钮添加操作
按钮BtnSubmit=findviewbyd(R.id.BtnSubmit);
BtnSubmit.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串TbName=“”;
int-TbAge=0;
字符串输出;
如果(t年龄>0&&t年龄18&&t年龄64)
{
TxtOuput=TbName+(“你快要死了”)+(“R.I.P”);
}
}
});
}
}
尝试了谷歌、youtube和其他来源的各种方法,但应用程序仍不会执行输出。

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

要实现这一点:

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

问题: 您在布局文件中只添加了按钮视图,而没有添加编辑文本


如果您需要相同的代码,请告诉我。

使用onclick listener的最佳简便方法, 在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>

注意:在“工具:上下文”中,您应该提到您正在使用布局和onclick的活动。在共享的代码中,您没有在变量中获取文本字段值。同样,您也不会将这些值设置回状态文本字段

所以应该是这样的:

如果我假设您的名字有firstEditText视图,年龄有secondEditText视图,状态有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);

        }
    });
}

}
public类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//向按钮添加操作
按钮BtnSubmit=(按钮)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(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串TbName=firstEditText.getText();
int-TbAge=Integer.parseInt(secondEditText.getText().toString());
字符串输出;
如果(t年龄>0&&t年龄18&&t年龄64)
{
TxtOuput=TbName+(“你快要死了”)+(“R.I.P”);
}
resultTextView.setText(TxtOuput);
}
});
}
}

试试这个,让我知道您正在为输出创建一个字符串,但您没有使用它做任何事情。它应该做什么?在控制台上打印出来?在状态标签?TXOUTPUT中设置它?它是什么?共享有关此TXT输出的一些详细信息是一个文本视图插槽,在该插槽中,一旦用户提交输入,输出字符串将被发送。基本上是执行程序的结果@RobertoTxtOutput是一个文本视图插槽,在该插槽中,一旦用户提交了输入,就要发送输出字符串。基本上是执行程序的结果@Roberto@Drew不,TxtOutput只是一个字符串。您正在代码中声明它<代码>字符串输出在完成Edittext、Textview并使字符串TbName可编辑后,应用程序现在将执行所需的字符串到TxtOutput。。。。。现在工作
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);

        }
    });
}

}