Java Android:NullPointerException调用EditText getText()方法时
我最近更新了我的eclipse ADT,现在当我开始新的活动时,我在相应的DIG类中实现了更多的方法,我不确定我应该将变量连接到相应视图的方式是否已经改变。。无论如何,我是这样做的:Java Android:NullPointerException调用EditText getText()方法时,java,android,xml,Java,Android,Xml,我最近更新了我的eclipse ADT,现在当我开始新的活动时,我在相应的DIG类中实现了更多的方法,我不确定我应该将变量连接到相应视图的方式是否已经改变。。无论如何,我是这样做的: public class LoginActivity extends ActionBarActivity { EditText editTextNumeroCartao, editTextPassword; InternetConnectivityManager icm; ProgressD
public class LoginActivity extends ActionBarActivity {
EditText editTextNumeroCartao,
editTextPassword;
InternetConnectivityManager icm;
ProgressDialog pDialog;
UserFunctions userFunction;
SessionManager session;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
// conecta as variáveis ás respectivas views
editTextNumeroCartao = (EditText) findViewById(R.id.editTextNumeroCartao);
editTextPassword = (EditText) findViewById(R.id.editTextPassword);
icm = new InternetConnectivityManager(getApplicationContext());
}
但是当我试图获取这个EditText中的文本时,我得到了空指针异常
public void doLogin(View view) {
if(icm.isOnline()) {
String numeroCartao = this.editTextNumeroCartao.getText().toString();
String password = this.editTextPassword.getText().toString();
if(numeroCartao == null || numeroCartao.trim().equals("") || password == null || password.trim().equals("")) {
Toast.makeText(getApplicationContext(), "Insere todos os dados", Toast.LENGTH_LONG).show();
} else {
new LoginAsyncTask().execute(numeroCartao, password);
}
} else {
Toast.makeText(getApplicationContext(), "Não estás ligado à Internet", Toast.LENGTH_LONG).show();
}
return;
}
我的活动\u登录xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="me.pap.bruno.esdahconnect.LoginActivity"
tools:ignore="MergeRootFrame" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="me.pap.bruno.esdahconnect.LoginActivity$PlaceholderFragment" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Número do Cartão"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editTextNumeroCartao"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="number" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:text="Password"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editTextPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword" />
<Button
android:id="@+id/buttonLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:text="Entrar"
android:onClick="doLogin" />
My fragment_登录xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="me.pap.bruno.esdahconnect.LoginActivity"
tools:ignore="MergeRootFrame" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="me.pap.bruno.esdahconnect.LoginActivity$PlaceholderFragment" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Número do Cartão"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editTextNumeroCartao"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="number" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:text="Password"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editTextPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword" />
<Button
android:id="@+id/buttonLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:text="Entrar"
android:onClick="doLogin" />
有人能帮我吗?
谢谢 嗯,你在尝试:
editTextNumeroCartao = (EditText) findViewById(R.id.editTextNumeroCartao);
editTextPassword = (EditText) findViewById(R.id.editTextPassword);
在您的活动中,但这些元素是片段。我认为这是它们为空的原因Hm,您正在尝试:
editTextNumeroCartao = (EditText) findViewById(R.id.editTextNumeroCartao);
editTextPassword = (EditText) findViewById(R.id.editTextPassword);
在您的活动中,但这些元素是片段。我认为它们是空的原因在于
editTextNumerocatao
和editTextPassword
在fragment\u login.xml
中,但您使用的是setContentView(R.layout.activity\u login)代码>
这就是它给您一个NullPointerException
的原因,因为在XML中找不到提到的EditText
更改setContentView(R.layout.activity\u登录)代码>到setContentView(R.layout.fragment\u登录)代码>
或
将EditText
代码移动到您的Fragment
editTextNumerocatao
和editTextPassword
位于Fragment\u login.xml
中,但您正在使用setContentView(R.layout.activity\u login)代码>
这就是它给您一个NullPointerException
的原因,因为在XML中找不到提到的EditText
更改setContentView(R.layout.activity\u登录)代码>到setContentView(R.layout.fragment\u登录)代码>
或
将编辑文本
代码移动到您的片段
您已经在片段布局中声明了这两个编辑文本,但在您的代码中您是通过activity\u man.xml访问的
将此更改为FragementLayout或将edittext相关代码移动到片段。您已在片段布局中声明了两个edittext,但在代码中您通过activity_man.xml访问
将此更改为Fragement布局或将edittext相关代码移到片段中。show activity\u login.xml您从何处调用doLogin?我已用android更新了post@SuvitrufI call:onClick=“doLogin”在我的xml片段文件中,我最近试图发布一个对问题的规范引用,如:show activity_login.xml你从何处调用doLogin?我已经用android:onClick=“doLogin”更新了post@SuvitrufI call,在我的xml片段文件中,我最近试图发布一个对问题的规范引用,如:你是对的。。有了这些新的改变,我最终得到了这两个布局,我真的不知道该改变哪一个。。谢谢!:)你说得对。。有了这些新的改变,我最终得到了这两个布局,我真的不知道该改变哪一个。。谢谢!:)