Android fragments android studio fragment onclick无法访问edittext
我有点像:Android fragments android studio fragment onclick无法访问edittext,android-fragments,android-studio,onclicklistener,Android Fragments,Android Studio,Onclicklistener,我有点像: public class EditCustomer extends Fragment implements OnClickListener { public void onClick(View v) { //this is what runs when you click the button EditText editName=(EditText) v.findViewById(R.id.edit_name); Syste
public class EditCustomer extends Fragment implements OnClickListener {
public void onClick(View v) {
//this is what runs when you click the button
EditText editName=(EditText) v.findViewById(R.id.edit_name);
System.out.println(editName.getText()); //FAILS
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment4
View v=inflater.inflate(R.layout.fragment_edit_customer, container, false);
Button a = (Button) v.findViewById(R.id.update_cust_btn);
a.setOnClickListener(this); //adds button listener
EditText editText = (EditText)v.findViewById(R.id.edit_name);
System.out.print(editText.getText().toString());
return v;
}
...
由于某些原因,EditText中出现了空指针异常。当我在同一个片段中尝试我的
onCreateView()
中的同一行时,效果很好。有什么我没听明白的吗?步骤1导入这两个包
import android.view.View;
import android.view.View.OnClickListener;
第2步在课堂上实施OnClickListener
公共类设置片段扩展片段实现OnClickListener
步骤3在onCreateView()中定义按钮和编辑文本
注意:-全局声明按钮和编辑文本
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_settings, container,
false);
Admin_Email = (EditText) rootView.findViewById(R.id.et_admin_email);
btn_SET = (Button) rootView.findViewById(R.id.btn_SET);
btn_ChangePassword = (Button) rootView
.findViewById(R.id.btn_ChangePassword);
btn_SET.setOnClickListener(this);
btn_ChangePassword.setOnClickListener(this);
return rootView;
}
步骤4在OnCreateView()之外,使用Id定义Onclick()方法
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_SET:
Toast toast = Toast.makeText(getActivity(), ""+Admin_Email.getText().toString(),
Toast.LENGTH_SHORT);
break;
case R.id.btn_ChangePassword:
break;
default:
break;
}
}
我的完整代码
mport android.annotation.SuppressLint;
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Patterns;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;
import java.util.regex.Pattern;
public class SettingsFragment extends Fragment implements OnClickListener {
Button btn_SET, btn_ChangePassword;
static EditText Admin_Email;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_settings, container,
false);
Admin_Email = (EditText) rootView.findViewById(R.id.et_admin_email);
btn_SET = (Button) rootView.findViewById(R.id.btn_SET);
btn_ChangePassword = (Button) rootView
.findViewById(R.id.btn_ChangePassword);
btn_SET.setOnClickListener(this);
btn_ChangePassword.setOnClickListener(this);
return rootView;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_SET:
Toast toast = Toast.makeText(getActivity(), ""+Admin_Email.getText().toString(),
Toast.LENGTH_SHORT);
break;
case R.id.btn_ChangePassword:
//
break;
default:
break;
}
}
}
你能展示一下你的onCreateCiew()吗?@ArpitPatel刚刚做了我正在尝试并向你发送演示你想在按钮点击时编辑文本值吗???@ArpitPatel是的我想要值,谢谢!请提及您所做的更改。我在onCreate()之外声明Edittext,您应该在回答中提及其中一些内容。