Intent nullPointer异常

时间:2015-11-10 04:26:36

标签: android android-intent

我知道这里有很多关于这个标题的主题,但我是android开发的新手,尝试了很多东西,但没有达成解决方案。

我有一个带有TextView的MainClass。 MainClass在第二个类中调用一个Method(" Check")。第二个类应该只创建一个带有字符串的intent,我在mainClass的textview中打印出来。 (稍后它应该更复杂,但首先我必须得到它。)

这是我的MainClass代码:

    package com.projektarbeit;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.TextView;

    public class MainActivity extends Activity {

        public static TextView output = null;

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

            //Variable initialisieren
            output = (TextView) findViewById(R.id.output);
            //App gestartet ausgeben
            output.setText("App started");

            Check check1 = new Check();
            check1.doCheck();

            Intent intent = getIntent();
            String myString = intent.getStringExtra("Test");
            output.setText(myString);
        }
    }

这是我的CheckClass代码:

    package com.projektarbeit;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;

    public class Check extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_check);
        }

        public void doCheck (){

            Intent intent = new Intent(getApplicationContext(), MainActivity.class);
            intent.putExtra("Test", "This is a test");
            startActivity(intent);

        }

    }

我完全错了,或者我的错误是什么?

3 个答案:

答案 0 :(得分:4)

为什么使用Intent,你究竟想做什么?

如果你真的只想检查字符串,那么下面的代码就可以了:

 public String doCheck (){ 

   return "This is a test";

 } 

要在textView中设置此文本,您只需调用此方法:

    output.setText(check1.doCheck());

答案 1 :(得分:0)

Check check1 = new Check();  
check1.doCheck();

您不应该实例化Activity 要从Check开始MainActivity,您应该执行以下操作:

Intent intent = new Intent(MainActivity.this, Check.class);
startActivity(intent);

另外,正如 Md。第纳尔建议,不要忘记declare the Activity on your AndroidManifest file

答案 2 :(得分:-1)

您是否在Android清单中添加了活动?如果是,请尝试

Intent intent = new Intent(Check.this, MainActivity.class);

而不是

Intent intent = new Intent(getApplicationContext(), MainActivity.class);