#java #android #computer-science
Вопрос:
Я новичок в Android studio и пытаюсь играть с простой программой, которая принимает ввод от пользователя, такой как имя, номер сертификата и роль, и отображает ввод пользователя в качестве вывода. Я использую отдельный созданный мной файл java, в котором есть все методы доступа. Поскольку я новичок в Android studio, я не уверен в синтаксисе того, как этого добиться. Не могли бы вы, пожалуйста, указать правильный способ написания синтаксиса, чтобы я получил желаемый результат?
Я предоставлю xml.файл, файл java, связанный с xml-файлом, и второй файл java, в котором есть класс и методы для извлечения. Дайвингдадди.java зависит от Divepartner.java. Я добавил Divepartner в библиотеку Android. Смотрите код ниже и еще раз спасибо.
Файл .xml:
lt;?xml version="1.0" encoding="utf-8"?gt; lt;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"gt; lt;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" /gt; lt;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" /gt; lt;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" /gt; lt;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" /gt; lt;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" /gt; lt;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" /gt; lt;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" /gt; lt;/androidx.constraintlayout.widget.ConstraintLayoutgt;
Файл Java, связанный с файлом .xml, называется 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(); } }
Комментарии:
1. В Интернете есть множество учебных пособий. Пожалуйста, ознакомьтесь с основами, прежде чем переходить к разработке Android.
Ответ №1:
DivePartner divePartner = new DivePartner(" "," "," "); // .... // .... // .... inputName = divePartner.getName(); inputCertNumber = divePartner.getCertNum(); inputRole = divePartner.getRole(); dive_buddy_info = divePartner.toString();
DivePartner
Объект пуст. Таким образом, когда вы вызываете get()
методы на нем, он вернет null
empty
значение или. Итак, используйте 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.
Я настоятельно рекомендую вам пройти базовый курс Java, прежде чем начинать разработку Android
Комментарии:
1. спасибо вам за вашу помощь. Я действительно ценю, что вы нашли время дать мне несколько советов. Сейчас я нахожусь в середине прохождения курса Java для повышения квалификации. Но мне нравится приезжать сюда, чтобы учиться у вас, прекрасные люди. Если это нормально, конечно.
2. Имя набора является закрытым. Я не могу получить к нему доступ, если он не является общедоступным, и я не хочу делать его общедоступным. Я смог получить желаемый ввод/вывод, когда вызывал файл java из обычного файла java, а не из java-файла Android studio, и это сработало. Итак, я не уверен, почему я не могу сделать то же самое, так как это основано на java. Вот почему мне нужна была небольшая помощь в руководстве по синтаксису. Но я уверен, что вы знаете, о чем говорите, поэтому я продолжу делать то, что вы предложили.