2016-08-18 2 views
-1

Я MainActivity следующим образом:App падает, когда Intent передается

public class MainActivity extends AppCompatActivity { 
DatabaseHelper myDb; 
TextView textView; 
Button button; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    myDb =new DatabaseHelper(this); 
    Cursor res= myDb.getAllData(); 
    if(res.getCount()==0) 
    { 
     textView = (TextView)findViewById(R.id.textView); 
     textView.setText("No Reminders"); 
     button = (Button)findViewById(R.id.button); 
     button.setText("Create a Reminder"); 

     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { //on click 2nd activity is called. 
       Intent myIntent = new Intent(MainActivity.this, Main2Activity.class); 
       //myIntent.putExtra("key", value); //Optional parameters 
       startActivity(myIntent); 
      } 
     }); 

     return; 
    } 
    StringBuffer buffer=new StringBuffer(); 
    while(res.moveToNext()) 
    { 
     buffer.append("Id : " +res.getString(0)+"\n"); 
     buffer.append("Event : " +res.getString(1)+"\n"); 
     buffer.append("Location : " +res.getString(2)+"\n"); 
    } 
    textView = (TextView)findViewById(R.id.textView); 
    textView.setText(buffer.toString()); 
} 
} 

Я другая деятельность по имени main2activity. Но когда я нажимаю кнопку в 1-й активности, приложение вылетает и записывает NullPointerException. Но это не дубликат каких-либо других таких NullPointerException вопросов.

Потому что, когда я запускаю только свою вторую активность Main2Activity, отдельно, она не дает этой ошибки. Но когда он вызывается из mainActivity, он дает ошибку. Я не могу понять, почему настройка слушателя на кнопке дает NullPointerException.

Мои Main2Activity является:

public class Main2Activity extends AppCompatActivity { 
private static final int PLACE_PICKER_REQUEST = 1; 
private TextView mName; 
private TextView mAddress; 
private TextView mAttributions; 
private GoogleApiClient mGoogleApiClient; 
public TextView tv4; 
private static final LatLngBounds BOUNDS_MOUNTAIN_VIEW = new LatLngBounds(
     new LatLng(37.398160, -122.180831), new LatLng(37.430610, -121.972090)); 



private boolean flag = false; 
DatabaseHelper myDb; 
EditText newevent; 
Button submit; 
Button viewremainders; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    Intent intent = getIntent(); 


    setContentView(R.layout.activity_main); 
    myDb =new DatabaseHelper(this); 
    newevent=(EditText)findViewById(R.id.newEvent); 
    submit=(Button)findViewById(R.id.submit); 
    viewremainders=(Button)findViewById(R.id.view); 

    Button pickerButton = (Button) findViewById(R.id.pickerButton); 
    tv4 = (TextView)findViewById(R.id.textView4); 
    pickerButton.setOnClickListener(new View.OnClickListener() { // <-- Error is here. (NullPointerException.) 
     @Override 
     public void onClick(View v) { 
      try { 
       PlacePicker.IntentBuilder intentBuilder = 
         new PlacePicker.IntentBuilder(); 
       intentBuilder.setLatLngBounds(BOUNDS_MOUNTAIN_VIEW); 
       Intent intent = intentBuilder.build(Main2Activity.this); 
       startActivityForResult(intent, PLACE_PICKER_REQUEST); 

      } catch (GooglePlayServicesRepairableException 
        | GooglePlayServicesNotAvailableException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
    AddData(); 
    viewremainders(); 
} 

Здесь я упомянул, где ошибка происходит в комментарии. И у меня есть другие методы с этим, но включаю только нужную часть.

Заранее благодарен!

EDIT: Log:

08-18 21:48:05.421 29655-29655/com.example.kaushal28.locationbasedreminder E/test: Exception 
08-18 21:48:05.424 29655-29655/com.example.kaushal28.locationbasedreminder E/AndroidRuntime: FATAL EXCEPTION: main 
                         java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.kaushal28.locationbasedreminder/com.example.kaushal28.locationbasedreminder.Main2Activity}: java.lang.NullPointerException 
                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2306) 
                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358) 
                          at android.app.ActivityThread.access$600(ActivityThread.java:156) 
                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340) 
                          at android.os.Handler.dispatchMessage(Handler.java:99) 
                          at android.os.Looper.loop(Looper.java:153) 
                          at android.app.ActivityThread.main(ActivityThread.java:5299) 
                          at java.lang.reflect.Method.invokeNative(Native Method) 
                          at java.lang.reflect.Method.invoke(Method.java:511) 
                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
                          at dalvik.system.NativeStart.main(Native Method) 
                          Caused by: java.lang.NullPointerException 
                          at com.example.kaushal28.locationbasedreminder.Main2Activity.onCreate(Main2Activity.java:85) 
                          at android.app.Activity.performCreate(Activity.java:5182) 
                          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081) 
                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270) 
                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)  
                          at android.app.ActivityThread.access$600(ActivityThread.java:156)  
                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)  
                          at android.os.Handler.dispatchMessage(Handler.java:99)  
                          at android.os.Looper.loop(Looper.java:153)  
                          at android.app.ActivityThread.main(ActivityThread.java:5299)  
                          at java.lang.reflect.Method.invokeNative(Native Method)  
                          at java.lang.reflect.Method.invoke(Method.java:511)  
                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)  
                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)  
                          at dalvik.system.NativeStart.main(Native Method)  
+1

Пожалуйста, ваши журнал ошибок – MRX

+0

это правильный идентификатор: R.id.pickerButton ??? –

+0

yes id полностью верен. Ошибок компиляции нет. –

ответ

0

Вы устанавливаете тот же макет в обоих мероприятиях. Удостоверьтесь и добавьте правильный макет.

setContentView(R.layout.activity_main);

public class Main2Activity extends AppCompatActivity { 

. 
. 
. 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    Intent intent = getIntent(); 
    setContentView(R.layout.activity_main); // here is issue same layout is used for both activity 
    } 
} 
+0

Ох! Спасибо. Это была глупая ошибка. Но теперь он дает такую ​​же ошибку в «MainActivity», где я устанавливаю текст на кнопку i.e в этой строке: 'textView.setText (« No Reminders »);' –

+0

теперь добавлять новые журналы. –

+0

такой же ошибка. 'NullPointerException'. –

Смежные вопросы