2014-07-30 3 views
-1

Я новичок в программировании в андроиде, у меня есть две кнопки в моем основном действии. С кнопкой номер один я хочу активировать свое второе действие с текстом, который я вводил в первую операцию, и с кнопкой номер два I просто хочу активировать второе действие. Когда я нажимаю приложение первой кнопки, работает правильно, но когда я нажимаю вторую кнопку, мое приложение падает! В чем проблема ? это мой основной код деятельности:Application Crashing

public class Main extends ActionBarActivity implements OnClickListener { 
EditText et; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button b = (Button) findViewById(R.id.button1); 
    et = (EditText) findViewById(R.id.editText1); 
    Button b1 = (Button) findViewById(R.id.button2); 
    b.setOnClickListener(this); 
    b1.setOnClickListener(this); 

} 

@Override 
public void onClick(View arg0) { 

    if (arg0.getId() == R.id.button1) { 
     Intent intent = new Intent(Main.this, secondj.class); 
     intent.putExtra("import", et.getText().toString()); 
        startActivity(intent); 
    } 
    if (arg0.getId() == R.id.button2) { 
     Intent intent1 = new Intent(Main.this, secondj.class); 
     startActivity(intent1); 
    } 
}} 

Благодаря

+0

исправить те столицы е verywhere pretty please –

+0

Félix: Отредактировано ...! –

+0

Добро пожаловать в stackoverflow. Пожалуйста, разместите свой лог-код ошибки таким образом, чтобы мы могли сузить то, где он сбой. – Otra

ответ

0

Сбой приложений из-за исключения NullPointerException.
Причина: При нажатии на кнопку 2 ваш не дает никаких Intent.putExtras, поэтому при попытке доступа он второй активности говорит getIntent.getExtras («импорт»), это вернуть нуль

 if (arg0.getId() == R.id.button1) { 
     Intent intent = new Intent(Main.this, secondj.class); 
     Bundle bundleObj = new Bundle(); 
     bundleObj.putInt("flag", 1); 
     bundleObj.putString("import", et.getText().toString()); 
     intent.putExtras(bundleObj); 
     startActivity(intent); 
    } 
    if (arg0.getId() == R.id.button2) { 
     Intent intent1 = new Intent(Main.this, secondj.class); 
     Bundle bundleObj = new Bundle(); 
     bundleObj.putInt("flag", 1); 
     intent1.putExtras(bundleObj); 
     startActivity(intent1); 
    } 

в secondj.class использовать этот код для distingush button1 нажав кнопку с 2.

Intent intentObj = getIntent(); 
    Bundle bundleFromIntent = intentObj.getExtras(); 
    int checkValue = bundleFromIntent.getInt("flag"); 
    if(checkValue == 1) 
    { 
     String textFromFirstActivity = bundleFromIntent.getString("import"); 
    } 
+0

Спасибо !!!!! –

0

В коде

if (arg0.getId() == R.id.button1) { 
    Intent intent = new Intent(Main.this, secondj.class); 
    intent.putExtra("import", et.getText().toString()); 
       startActivity(intent); 
} 
if (arg0.getId() == R.id.button2) { 
    Intent intent1 = new Intent(Main.this, secondj.class); 
    startActivity(intent1); 
} 

Как уже упоминалось, что при нажатии на первую кнопку работ, но аварий на нажатия второй кнопки. Тогда есть только один шанс, что вызов метода getIntent().getBundle() возвращает NULL в secondj.onCreate().

Вы можете проверить NULL на этот случай.

+0

На самом деле я не получил это полностью, как будет выглядеть мой код? напишите правильный код? Спасибо –