【问题标题】:Null object reference error in Android StudioAndroid Studio 中的空对象引用错误
【发布时间】:2018-03-06 12:15:16
【问题描述】:

我得到这个错误,当我使用另一个类的 findviewbyid 时似乎出现了。

MainActivity:

protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button boton=(Button)findViewById(R.id.button);
    boton.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
          EditText usuario=(EditText)findViewById(R.id.editText);
            usuario1  =(EditText)findViewById(R.id.editText);
            EditText password = (EditText) findViewById(R.id.editText2);
            String user = usuario1.getText().toString();
            String pass = password.getText().toString();
            Esta asd=new Esta();
        asd.function();

        }
        });}

Esta.class:

package com.example.sori.facultad_if;

import android.support.v7.app.AppCompatActivity;
import android.widget.EditText;


public class Esta extends AppCompatActivity{

    public void function() {
        setContentView(R.layout.activity_main);
        EditText thisone=(EditText)findViewById(R.id.editText);

}}

错误日志:

03-05 22:44:12.061 10088-10088/com.example.sori.facultad_if E/AndroidRuntime: FATAL EXCEPTION: main 进程:com.example.sori.facultad_if,PID:10088 java.lang.NullPointerException:尝试调用虚拟方法 'android.view.Window$Callback android.view.Window.getCallback()' 空对象引用

提前致谢

【问题讨论】:

  • 覆盖 android 生命周期的方法并在 Esta 类的这些方法中编写代码
  • 你想做什么,可能有更好的解决方案满足你的需要,你能描述一下你的 2 类吗?
  • @SagarChavada 你对 android life cicle 的方法是什么意思?你能用我的代码发布一个例子吗?谢谢
  • @Farrokh 问题是我无法从 Esta.class 做任何事情,我的意思是,我无法获取 EditText 的文本,无法设置 EditText 的文本,什么都没有.
  • 我知道这一点,但我想知道你为什么要这样做,你的布局没有膨胀,因此没有编辑文本,为什么你需要在另一个类中设置或获取不显示的文本并且不活跃等,请描述您的主要想法以找到一个好的解决方案

标签: java android android-studio


【解决方案1】:

试试这样:

主活动:

protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    EditText usuario=(EditText)findViewById(R.id.editText);
    EditText password = (EditText) findViewById(R.id.editText2);

    Button boton=(Button)findViewById(R.id.button);
    boton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {


                String user = usuario1.getText().toString();
                String pass = password.getText().toString();
                startActivity(new Intent(activity, ImageEditingActivity.class).putExtra("user", user).putExtra("pass", pass));

            }
        });

}

Esta.class:

package com.example.sori.facultad_if;

import android.support.v7.app.AppCompatActivity;
import android.widget.EditText;


public class Esta extends AppCompatActivity{

    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        try {
            //noinspection ConstantConditions
            String user = getIntent().getExtras().getString("user", "");
            String pass = getIntent().getExtras().getString("pass", "");
        } catch (Exception e) {
            e.printStackTrace();
        }

        EditText thisone=(EditText)findViewById(R.id.editText);
    }


}

【讨论】:

  • 我不需要获取用户和密码,我只想从 Esta.class 编辑editText
猜你喜欢
  • 2022-08-18
  • 1970-01-01
  • 2017-04-24
  • 1970-01-01
  • 2017-01-26
  • 2023-03-04
  • 2020-01-28
  • 2020-12-08
  • 1970-01-01
相关资源
最近更新 更多