Java Android:NullPointerException调用EditText getText()方法时

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

我最近更新了我的eclipse ADT,现在当我开始新的活动时,我在相应的DIG类中实现了更多的方法,我不确定我应该将变量连接到相应视图的方式是否已经改变。。无论如何,我是这样做的:

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片段文件中,我最近试图发布一个对问题的规范引用,如:你是对的。。有了这些新的改变,我最终得到了这两个布局,我真的不知道该改变哪一个。。谢谢!:)你说得对。。有了这些新的改变,我最终得到了这两个布局,我真的不知道该改变哪一个。。谢谢!:)