2015-11-10 82 views
-2

我知道這裏存在很多與這個頭的主題,但我是新的android開發,並嘗試了很多東西,但沒有達到解決方案。意圖nullPointer異常

我有一個帶有TextView的MainClass。 MainClass在第二個類中調用一個方法(「檢查」)。第二個類應該只創建一個字符串,然後在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); 

     } 

    } 

我完全錯了或什麼是我的錯?

+0

哪個是您的啓動器活動?檢查或MainActivity? –

+0

你的方式不正確。在這裏描述你的需要。 –

+0

你可以使用startActivityforResult看看這個例子http://developer.android.com/intl/es/training/basics/intents/result.html –

回答

-1

您是否在Android清單中添加了您的活動?如果是的話請嘗試

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

代替

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

如果活動不會添加到AndroidManifest.xml,那麼錯誤將是「ClassNotFound」而不是「NullPointer」。 –

4

爲什麼您使用的意圖,想要做什麼?

如果你真的想只檢查字符串,則下面的代碼段將工作:

public String doCheck(){ 

    return "This is a test"; 

} 

而在你的TextView設置這個文本,你只需要調用此方法是這樣的:

output.setText(check1.doCheck()); 
+0

,因爲doCheck方法與TextView不同。我想在MainActivity的視圖中處理結果! – HobbyCoder

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

你不應該實例化一個Activity
要開始從CheckMainActivity你應該做這樣的事情:

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

此外,作爲馬里蘭州第納爾曾建議,不要忘了declare the Activity on your AndroidManifest file

+0

我嘗試像你這裏promt但比textview是emtpy :( – HobbyCoder