2015-11-10 4 views
-2

Я знаю, что здесь существует много тем с этим заголовком, но я новичок в разработке Android и пробовал много вещей, но не доходил до решения.Intent nullPointer Exception

У меня есть MainClass с TextView. MainClass вызывает метод во втором классе («Проверить»). Второй класс должен создавать только намерение со строкой, которую я распечатываю в текстовом представлении mainClass. (Позже это должно быть более сложным, но сначала я должен это получить).

Вот мой кодекс 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); 

     } 

    } 

Am Я совершенно неправильно или что это моя ошибка?

+0

Какая ваша деятельность по запуску? Проверить или MainActivity? –

+0

Ваш путь неправильный. Опишите здесь ваши потребности. –

+0

вы можете использовать startActivityforResult, см. Этот пример http://developer.android.com/intl/es/training/basics/intents/result.html –

ответ

-1

Вы добавили свои действия в манифест андроида? Если да Попробуйте

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

вместо

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

Если активность не добавляется в AndroidManifest.xml, тогда ошибка будет «ClassNotFound», а не «NullPointer». –

4

Почему вы используете Intent, что именно вы хотите сделать?

Если вы действительно хотите проверить только строку затем следующий фрагмент кода будет работать:

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.
Чтобы начать Check от вашего MainActivity вы должны сделать что-то вроде этого:.

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

Кроме того, как Md Динар предложил, не забудьте declare the Activity on your AndroidManifest file.

+0

Я пробовал это, как вы, здесь, но чем Textview является emtpy :( – HobbyCoder