【问题标题】:Return input information in android Studio Java在android Studio Java中返回输入信息
【发布时间】:2021-10-24 03:20:32
【问题描述】:

我是 android studio 的新手,我正在尝试使用简单的程序来获取用户的输入,例如姓名、证书编号和角色,并将用户输入显示为输出。我正在使用我创建的一个单独的 java 文件,该文件具有所有访问方法。因为我是 android studio 的新手,所以我不确定如何实现这一点的语法。您能否提供编写语法的正确方法,以便我获得所需的输出?

我将提供 xml.file、与 .xml 文件关联的 java 文件和第二个 java 文件,其中包含要从中提取的类和方法。 DivingDuddy.java 依赖于 Divepartner.java。我将 Divepartner 添加到了 android 库中。请参阅下面的代码,再次感谢您。

.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".DivingBuddy">

    <TextView
        android:id="@+id/dive_buddypage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Welcome to the Dive Buddy section!"
        android:textAlignment="center"
        android:textSize="35sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.051" />

    <EditText
        android:id="@+id/divebuddyname_input"
        android:layout_width="249dp"
        android:layout_height="60dp"
        android:background="@drawable/edit_text_custom"
        android:hint="Enter Name:"
        android:padding="10dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.098"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.241" />

    <EditText
        android:id="@+id/certNumber_input"
        android:layout_width="249dp"
        android:layout_height="60dp"
        android:background="@drawable/edit_text_custom"
        android:hint="Enter certNumber of partner:"
        android:padding="10dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.098"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.347" />

    <EditText
        android:id="@+id/role_input"
        android:layout_width="249dp"
        android:layout_height="60dp"
        android:background="@drawable/edit_text_custom"
        android:hint="Enter role of partner:"
        android:padding="10dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.098"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.451" />

    <EditText
        android:id="@+id/output"
        android:layout_width="410dp"
        android:layout_height="63dp"
        android:background="@drawable/edit_text_custom"
        android:hint="Dive Section Output:"
        android:padding="10dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.649" />

    <Button
        android:id="@+id/complete_DiveBuddySection"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Complete"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.506"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.806" />

    <Button
        android:id="@+id/back_to_otherDetails3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Back"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.901" />


</androidx.constraintlayout.widget.ConstraintLayout>

与 .xml 文件关联的 Java 文件称为 DivingBuddy.java。

public class DivingBuddy extends AppCompatActivity {

    EditText name, certNum, role, output;
    Button back;

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

        name = (EditText)findViewById(R.id.divebuddyname_input);
        certNum = (EditText)findViewById(R.id.certNumber_input);
        role = (EditText)findViewById(R.id.role_input);
        output = (EditText)findViewById(R.id.output);

        findViewById(R.id.complete_DiveBuddySection).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                DivePartner divePartner = new DivePartner(" "," "," ");
                String inputName = name.getText().toString();
                String inputCertNumber = certNum.getText().toString();
                String inputRole = role.getText().toString();
                String dive_buddy_info = output.getText().toString();

                if(inputName.isEmpty() || inputCertNumber.isEmpty() || inputRole.isEmpty()){
                    Toast.makeText(DivingBuddy.this,"Please Enter the Name, CertNumber and role of the dive partner", Toast.LENGTH_LONG).show();
                }else{

                    inputName = divePartner.getName();
                    inputCertNumber = divePartner.getCertNum();
                    inputRole = divePartner.getRole();
                    dive_buddy_info = divePartner.toString();

                    System.out.println(inputName);
                    System.out.println(inputCertNumber);
                    System.out.println(inputRole);
                    System.out.println(dive_buddy_info);
                }
            }
        });

        back = (Button)findViewById(R.id.back_to_otherDetails3);

        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(getApplicationContext(),OtherDivingDetails.class);
                startActivity(intent);
            }
        });
    }
}

第三个 Java 文件名为 DivePartner.java,用于从中调用方法或函数。

package com.example.divepartner;

public class DivePartner {
    private String name;
    private String certNum;
    private String role;

    public DivePartner(String name, String number, String role){
        setName(name);
        setCertNum(number);
        setRole(role);
    }

    public String getName() {
        String temp = name;
        return temp;
    }

    private void setName(String name) {
        this.name = name;
    }

    public String getCertNum() {
        String temp = certNum;
        return temp;
    }

    private void setCertNum(String certNum) {
        this.certNum = certNum;
    }

    public String getRole() {
        String temp = role;
        return temp;
    }

    private void setRole(String role) {
        this.role = role;
    }

    @Override
    public String toString() {
        return "Name: " + getName() + ", CertNum: " + getCertNum() + ", Role: " + getRole();
    }
}

【问题讨论】:

  • 网上有很多教程。请先完成基础知识,然后再进行 Android 开发。

标签: java android computer-science


【解决方案1】:
DivePartner divePartner = new DivePartner(" "," "," ");
// ....
// ....
// ....
inputName = divePartner.getName();
inputCertNumber = divePartner.getCertNum();
inputRole = divePartner.getRole();
dive_buddy_info = divePartner.toString();

DivePartner 对象为空。因此,当您对其调用 get() 方法时,它将返回 nullempty 值。所以,请使用set() 而不是get()

DivePartner divePartner = new DivePartner(" "," "," ");
// ....
// ....
// ....
divePartner.setName(inputName);
divePartner.setCertNum(inputCertNumber);
divePartner.getRole(inputRole);

dive_buddy_info = divePartner.toString();

现在代替System.out.println(),使用Log.d()方法登录AndroidStudio Console。

我强烈建议您在开始 Android 开发之前完成基本的 Java 课程

【讨论】:

  • 感谢您的帮助。我真的很感谢你花时间给我一些指导。我现在正在学习 Java 课程作为进修。但是,我喜欢来这里向你们这些优秀的人学习。如果那当然可以。
  • setName 是私有的。我无法访问它,除非它是公开的并且我不想公开它。当我从常规 java 文件而不是 android studio java 文件调用 java 文件时,我能够获得所需的输入/输出并且它有效。所以,我不确定为什么我不能做同样的事情,因为这是基于 java 的。这就是为什么我需要一些语法指导帮助。但是,我相信你知道你在说什么,所以我会继续按照你的建议去做。
猜你喜欢
  • 1970-01-01
  • 2016-10-22
  • 2021-02-11
  • 2012-02-28
  • 2012-06-03
  • 2017-03-13
  • 1970-01-01
  • 2023-03-06
  • 2022-08-22
相关资源
最近更新 更多