2013-03-21 5 views
0

Итак, я только что начал просматривать и перемещаться между действиями. Я думал, что получил то, что искал. Я исправил все свои ошибки, но теперь, когда я тестирую приложение, он сбой. Я новичок в андроиде и затмении. Поэтому я не совсем уверен, что происходит. Вот мой MainActivity.java:Сбой при тестировании

 import android.os.Bundle; 
     import android.app.Activity; 
     import android.content.Intent; 
     import android.util.Log; 
     import android.view.Menu; 
     import android.view.MenuInflater; 
     import android.view.View; 
     import android.widget.Button; 
     import android.widget.EditText; 
     import android.widget.TextView; 

    public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Intent intent = getIntent(); 
    String info = intent.getStringExtra("info_key"); 
    TextView text = (TextView) findViewById(R.id.nametext); 
    text.setText(info); 
} 


//opens a new activity. 
public void openAddItem (View v){ 
    Intent intent = new Intent (this, Additem.class); 
    startActivity(intent); 
     } 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

    } 

И вот моя вторая деятельность; Additem.java:

package com.grocerylist; 

    import android.os.Bundle; 
    import android.app.Activity; 
    import android.content.Intent; 
    import android.view.Menu; 
    import android.view.View; 
    import android.widget.EditText; 
    import android.widget.TextView; 

    public class Additem extends Activity { 

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

} 


public void additem (View v){ 
    EditText text = (EditText)findViewById(R.id.itemname); 
    String info = text.getText().toString(); 
    Intent intent = new Intent(this, MainActivity.class); 
    intent.putExtra("info_key", info); 
    startActivity(intent); 
    } 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activity_additem, menu); 
    return true; 
} 

    } 

Спасибо, и я уверен, что проблема заключается в том, где я разместил свои идентификаторы.

+0

Опубликовать Ваше LogCat. Фактически, как только вы найдете свой логарифм, есть хороший шанс, вы можете исправить его самостоятельно;) – 323go

+0

где вы называете метод openAdditem() и почему вы передаете ему представление? Какая активность начинается при запуске приложения? Пожалуйста, опубликуйте некоторые данные LogCat. Если вы еще не видите LogCat, перейдите в Window - Show View - LogCat – Droidman

+0

Да, это просто показывает, где проблема. Строка 28, которая находится в моей MainActivity.java, но я не вижу проблемы с: text.setText (info). Вы? @ 323go –

ответ

1

Ваша первая проблема, которую я вижу здесь

Intent intent = getIntent(); 
    String info = intent.getStringExtra("info_key"); 
    TextView text = (TextView) findViewById(R.id.nametext); 
    text.setText(info); 

нет Intent «получить», если это ваш первый Activity. Это используется, когда вы начинаете Activity с Intent и отправляете extras. Итак, естественно, info - null. Там будет что-то, когда вы создадите его со своего второго Activity, но не при первом запуске приложения. Кроме того, вы можете проверить в использовании startActivityForResult в первом Activity

Во-вторых, я не вижу, где вы звоните openAddItem() в первом Activity. Это может быть от Button, но я не вижу Buttons

Похоже, что вам не хватает понимания ключевых принципов основы Android. Я предлагаю вам начать с Docs Here, если вы еще не прошли через них. Удачи вам

Кроме того, этот

Intent intent = new Intent (this, Additem.class); 

должен быть этот

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

@Kyle K сделал эту помощь? – codeMagic

+0

Да, я ценю это! @codeMagic –

+0

@KyleK Я рад, что смог помочь! Пожалуйста, согласитесь, что правильный ответ и другие с похожими проблемами найдут это проще – codeMagic

-2

первая проблема, я вижу уже упоминал codeMagic.

Вторая вещь: в случае, если вы просто назвать свои методы, которые начинаются еще Activity в onCreate(), вы получите псевдо-бесконечное число тех Activities в стеке и ваше приложение будет врезаться.

Рассмотрим смотреть these tutorials, это может помочь вам начать работу

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