Java 安卓可以';无法获取片段中编辑文本的值
我已尝试获取edittext值,但无效。这是我在android片段中的代码:Java 安卓可以';无法获取片段中编辑文本的值,java,android,android-layout,android-studio,android-edittext,Java,Android,Android Layout,Android Studio,Android Edittext,我已尝试获取edittext值,但无效。这是我在android片段中的代码: public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View v=inflater.inflate(R.layout.fragment_add_patient, container, false);
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View v=inflater.inflate(R.layout.fragment_add_patient, container, false);
final EditText FirstName=(EditText) v.findViewById(R.id.FirstName);
final Button addPatientButton=(Button) v.findViewById(R.id.AddPatientButton);
addPatientButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isOnline()) {
try {
if (FirstName.getText().toString().trim().equals("")) {
FirstName.setError("First Name is required!");
return;
}
我在这一行收到错误:FirstName.getText().toString().trim().equals(“”
错误如下:尝试在空对象引用上调用虚拟方法“android.text.Editable android.widget.EditText.getText()”
这是我的片段添加患者xml文件,其中包含所有项目
<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"
tools:context="com.example.ionut.myapplication.PatientController.AddPatientFragment">
<!-- TODO: Update blank fragment layout -->
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="80dp"
android:id="@+id/PatientFirstName"
android:hint="First Name" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:layout_marginTop="27dp"
android:id="@+id/PatientLastName"
android:hint="Last Name"
android:layout_below="@+id/PatientFirstName"
android:layout_alignLeft="@+id/PatientFirstName"
android:layout_alignStart="@+id/PatientFirstName" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:ems="10"
android:layout_below="@+id/PatientLastName"
android:layout_alignRight="@+id/PatientLastName"
android:layout_alignEnd="@+id/PatientLastName"
android:layout_marginTop="25dp"
android:id="@+id/Email"
android:hint="Email" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:layout_marginTop="22dp"
android:id="@+id/PatientAge"
android:hint="Age"
android:layout_below="@+id/Email"
android:layout_alignLeft="@+id/Email"
android:layout_alignStart="@+id/Email" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="phone"
android:ems="10"
android:layout_below="@+id/PatientAge"
android:layout_alignLeft="@+id/PatientAge"
android:layout_alignStart="@+id/PatientAge"
android:layout_marginTop="32dp"
android:id="@+id/PatientPhone"
android:hint="Phone" />
<Button
android:text="Add Patient"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/AddPatientButton"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="77dp" />
<Spinner
android:id="@+id/cspinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:layout_below="@+id/PatientPhone"
android:layout_alignRight="@+id/PatientPhone"
android:layout_alignEnd="@+id/PatientPhone"
android:layout_alignLeft="@+id/PatientPhone"
android:layout_alignStart="@+id/PatientPhone" />
提前谢谢 FirstName EditText为空,因为findViewById方法正在尝试查找id为
FirstName
的EditText,但正确的id为PatientFirstName
要解决此问题,请更换
final EditText FirstName=(EditText) v.findViewById(R.id.FirstName);
与
FirstName EditText为null,因为findViewById方法正在尝试查找id为
FirstName
的EditText,但正确的id为PatientFirstName
要解决此问题,请更换
final EditText FirstName=(EditText) v.findViewById(R.id.FirstName);
与
您只是试图查询布局中不存在的id “First Name”编辑文本的实际id为“PatientFirstName”。另外,还要尽量使代码有一点条理,如下所示 1-将您的按钮、EditText变量声明为全局变量,以便在片段中的任何位置都可以访问
2-如果要添加更多带有单击事件的按钮,则应使片段或活动实现View.onClickListener只要您试图查询布局中不存在的id即可 “First Name”编辑文本的实际id为“PatientFirstName”。另外,还要尽量使代码有一点条理,如下所示 1-将您的按钮、EditText变量声明为全局变量,以便在片段中的任何位置都可以访问
2-如果要添加更多包含单击事件的按钮,则应使片段或活动实现View.onClickListenerFirstName为Null请发布片段\u add\u patient.xml。请确保它具有id为FirstName的EditText。我发布片段\u添加\u patient该EditText id在xml中为“PatientFirstName”,但在代码中使用“FirstName”将代码更改为“PatientFirstName”。没有id为
FirstName的EditText
FirstName为空请发布片段\u添加\u patient.xml。确保它有一个id为FirstName的EditText。我发布片段\u添加\u Patient EditText id在xml中是“PatientFirstName”,但在代码中使用“FirstName”将代码更改为“PatientFirstName”。没有id为FirstName的EditText
,我假设“全局”是指“字段”。局部变量是可以的。匿名内部类对于OnClickListeners来说是不错的。我假设“全局”是指“字段”。局部变量是可以的。匿名内部类对于onclick监听器来说是很好的。