EditText text = (EditText) findViewById(R.id.text); возвращает null
Весь этот список инициализируется как null, а это проблема. Объясните почему так?
EditText passwordEt = (EditText) findViewById(R.id.passwordEdit);//=null
EditText emailEt = (EditText) findViewById(R.id.emailEdit);//=null
EditText questionEdit = (EditText) findViewById(R.id.questionEdit);//=null
EditText answerEdit = (EditText) findViewById(R.id.answerEdit);//=null
EditText nicknameEt = (EditText) findViewById(R.id.nicknameEdit);//=null
java файл
package com.example.myapplication;
import android.app.Dialog;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
public class EditProfile extends AppCompatActivity {
public String log;
public String avatar;
String type;
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_profile);
Intent intent = getIntent();
log = intent.getStringExtra("log");
avatar = intent.getStringExtra("avatar");
ImageView img_ava = (ImageView)findViewById(R.id.ava);
img_ava.setClipToOutline(true);//для закругления
Button btn_edit_email = (Button)findViewById(R.id.btn_edit_email);
Button btn_edit_login = (Button)findViewById(R.id.btn_edit_login);
Button btn_edit_name = (Button)findViewById(R.id.btn_edit_name);
Button btn_edit_password = (Button)findViewById(R.id.btn_edit_password);
EditText passwordEt = (EditText) findViewById(R.id.passwordEdit);
EditText emailEt = (EditText) findViewById(R.id.emailEdit);
EditText questionEdit = (EditText) findViewById(R.id.questionEdit);
EditText answerEdit = (EditText) findViewById(R.id.answerEdit);
EditText nicknameEt = (EditText) findViewById(R.id.nicknameEdit);
ImageView btn_back = findViewById(R.id.image_back);
btn_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent back = new Intent (EditProfile.this, MainProfile.class);
back.putExtra("log",log);
back.putExtra("avatar",avatar);
startActivity(back);
finish();
}
});
img_ava.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Dialog dialog_edit_ava;
dialog_edit_ava = new Dialog(EditProfile.this);
dialog_edit_ava.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog_edit_ava.setContentView(R.layout.dialog_edit_ava);
dialog_edit_ava.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); //прозрачный фон диалогового окна
dialog_edit_ava.setCancelable(false);
ImageView img_ava_lamb = (ImageView)dialog_edit_ava.findViewById(R.id.ava_lamb);
ImageView img_ava_owl = (ImageView)dialog_edit_ava.findViewById(R.id.ava_owl);
ImageView img_ava_panda = (ImageView)dialog_edit_ava.findViewById(R.id.ava_panda);
ImageView img_ava_penguin = (ImageView)dialog_edit_ava.findViewById(R.id.ava_penguin);
ImageView img_ava_pig = (ImageView)dialog_edit_ava.findViewById(R.id.ava_pig);
ImageView img_ava_rabbit = (ImageView)dialog_edit_ava.findViewById(R.id.ava_rabbit);
ImageView img_ava_sloth = (ImageView)dialog_edit_ava.findViewById(R.id.ava_sloth);
img_ava_lamb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
avatar = "0";
type = "avatarChange";
BackgroundWorkerAvatar backgroundWorkerA = new BackgroundWorkerAvatar(EditProfile.this);
backgroundWorkerA.execute(type, log, avatar);
dialog_edit_ava.dismiss();
}
});
img_ava_owl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
avatar = "1";
type = "avatarChange";
BackgroundWorkerAvatar backgroundWorkerA = new BackgroundWorkerAvatar(EditProfile.this);
backgroundWorkerA.execute(type, log, avatar);
dialog_edit_ava.dismiss();
}
});
img_ava_panda.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
avatar = "2";
type = "avatarChange";
BackgroundWorkerAvatar backgroundWorkerA = new BackgroundWorkerAvatar(EditProfile.this);
backgroundWorkerA.execute(type, log, avatar);
dialog_edit_ava.dismiss();
}
});
img_ava_penguin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
avatar = "3";
type = "avatarChange";
BackgroundWorkerAvatar backgroundWorkerA = new BackgroundWorkerAvatar(EditProfile.this);
backgroundWorkerA.execute(type, log, avatar);
dialog_edit_ava.dismiss();
}
});
img_ava_pig.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
avatar = "4";
type = "avatarChange";
BackgroundWorkerAvatar backgroundWorkerA = new BackgroundWorkerAvatar(EditProfile.this);
backgroundWorkerA.execute(type, log, avatar);
dialog_edit_ava.dismiss();
}
});
img_ava_rabbit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
avatar = "5";
type = "avatarChange";
BackgroundWorkerAvatar backgroundWorkerA = new BackgroundWorkerAvatar(EditProfile.this);
backgroundWorkerA.execute(type, log, avatar);
dialog_edit_ava.dismiss();
}
});
img_ava_sloth.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
avatar = "6";
type = "avatarChange";
BackgroundWorkerAvatar backgroundWorkerA = new BackgroundWorkerAvatar(EditProfile.this);
backgroundWorkerA.execute(type, log, avatar);
dialog_edit_ava.dismiss();
}
});
TextView btn_close = (TextView) dialog_edit_ava.findViewById(R.id.btn_close);
btn_close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog_edit_ava.dismiss();
}
});
Button btn_continue = (Button) dialog_edit_ava.findViewById(R.id.btn_continue);
btn_continue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog_edit_ava.dismiss();
}
});
dialog_edit_ava.show();
}
});
btn_edit_email.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Dialog dialog_edit_email;
dialog_edit_email = new Dialog(EditProfile.this);
dialog_edit_email.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog_edit_email.setContentView(R.layout.dialog_edit_email);
dialog_edit_email.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog_edit_email.setCancelable(false);
TextView btn_close = (TextView) dialog_edit_email.findViewById(R.id.btn_close);
btn_close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog_edit_email.dismiss();
}
});
//кнопка продолжить
Button btn_continue = (Button) dialog_edit_email.findViewById(R.id.btn_continue);
btn_continue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//ОШИБКА!!!!!!!!!!
String emailStr = emailEt.getText().toString();
String type = "emailEt";
new BackgroundWorkerEditP(EditProfile.this, type, log, emailStr);
dialog_edit_email.dismiss();
});
dialog_edit_email.show();
}
});
btn_edit_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Dialog dialog_edit_login;
dialog_edit_login = new Dialog(EditProfile.this);
dialog_edit_login.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog_edit_login.setContentView(R.layout.dialog_edit_login);
dialog_edit_login.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog_edit_login.setCancelable(false);
TextView btn_close = (TextView) dialog_edit_login.findViewById(R.id.btn_close);
btn_close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog_edit_login.dismiss();
}
});
Button btn_continue = (Button) dialog_edit_login.findViewById(R.id.btn_continue);
btn_continue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//ОШИБКА!!!!!!!!!!
String questionStr = questionEdit.getText().toString();
String answerStr = answerEdit.getText().toString();
String type = "questionEt";
new BackgroundWorkerEditP(EditProfile.this, type, log, questionStr);
type = "answerEt";
new BackgroundWorkerEditP(EditProfile.this, type, log, answerStr);
dialog_edit_login.dismiss(); //закрываем диалоговое окно
}
});
dialog_edit_login.show();
}
});
btn_edit_name.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Dialog dialog_edit_name;
dialog_edit_name = new Dialog(EditProfile.this);
dialog_edit_name.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog_edit_name.setContentView(R.layout.dialog_edit_name);
dialog_edit_name.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); //прозрачный фон диалогового окна
dialog_edit_name.setCancelable(false);
TextView btn_close = (TextView) dialog_edit_name.findViewById(R.id.btn_close);
btn_close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog_edit_name.dismiss();
}
});
Button btn_continue = (Button) dialog_edit_name.findViewById(R.id.btn_continue);
btn_continue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//ОШИБКА!!!!!!!!!!
String nicknameStr = nicknameEt.getText().toString();
String type = "nicknameEt";
new BackgroundWorkerEditP(EditProfile.this, type, log, nicknameStr);
dialog_edit_name.dismiss();
}
});
dialog_edit_name.show();
}
});
btn_edit_password.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Dialog dialog_edit_password;
dialog_edit_password = new Dialog(EditProfile.this);
dialog_edit_password.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog_edit_password.setContentView(R.layout.dialog_edit_password);
dialog_edit_password.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog_edit_password.setCancelable(false);
TextView btn_close = (TextView) dialog_edit_password.findViewById(R.id.btn_close);
btn_close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog_edit_password.dismiss();
}
});
Button btn_continue = (Button) dialog_edit_password.findViewById(R.id.btn_continue);
btn_continue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//ОШИБКА!!!!!!!!!!
String passwordStr = passwordEt.getText().toString();
String type = "passwordEt";
new BackgroundWorkerEditP(EditProfile.this, type, log, passwordStr);
dialog_edit_password.dismiss();
}
});
dialog_edit_password.show();
}
});
}
public void onBackPressed(){
Intent back = new Intent (EditProfile.this, MainProfile.class);
back.putExtra("log",log);
back.putExtra("avatar",avatar);
startActivity(back);
finish();
}
}
xml файл основного окна
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
android:orientation="vertical"
android:background="@drawable/edit_profile"
tools:context=".MainActivity">
<ImageView
android:id="@+id/image_back"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginTop="120dp"
app:srcCompat="@drawable/back" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="300dp"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/ava"
android:padding="5dp"
android:background="@drawable/style_profile_edit"
android:layout_width="90dp"
android:layout_height="90dp"
app:srcCompat="@drawable/lamb"
android:scaleType="centerCrop"
/>
<Button
android:id="@+id/btn_edit_email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background = "@drawable/style_btn"
android:textSize="15sp"
android:layout_marginTop="15dp"
android:text="@string/edit_email"
android:textStyle="bold"
android:textAllCaps="false"/>
<Button
android:id="@+id/btn_edit_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:background="@drawable/style_btn"
android:text="@string/edit_QA"
android:textAllCaps="false"
android:textSize="15sp"
android:textStyle="bold" />
<Button
android:id="@+id/btn_edit_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background = "@drawable/style_btn"
android:textSize="15sp"
android:layout_marginTop="15dp"
android:text="@string/edit_name"
android:textStyle="bold"
android:textAllCaps="false"/>
<Button
android:id="@+id/btn_edit_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background = "@drawable/style_btn"
android:textSize="15sp"
android:layout_marginTop="15dp"
android:text="@string/edit_password"
android:textStyle="bold"
android:textAllCaps="false"/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
xml файл одного диалогового окна (остальные сделаны по тому же принципу)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="300dp"
android:layout_height="400dp"
android:id="@+id/rules_dialog"
android:background="@drawable/edit_password"
android:layout_gravity="center"
android:scaleType="centerCrop"
android:layout_margin="10dp"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:orientation="vertical"
android:padding="5dp"
>
<TextView
android:id="@+id/btn_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:padding="10dp"
android:text="@string/x"
android:textColor="@color/white"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:padding="10dp">
<EditText
android:id="@+id/passwordEdit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" />
<Button
android:id="@+id/btn_continue"
android:layout_width="55dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:layout_marginTop="5dp"
android:text="@string/ok"
android:backgroundTint="@color/pink"
android:textSize="13sp"/>
</LinearLayout>
</LinearLayout>
Ответы (1 шт):
Автор решения: Arty Morris
→ Ссылка
EditText passwordEt,
EditText emailEt;
EditText questionEdit;
EditText answerEdit;
EditText nicknameEt;
должны принадлежать (быть объявлены в xml разметке)
R.layout.edit_profile
У вас они в других окнах, активити или фрагмент. Вот там и нужно их объявлять