В onStart() я хочу установить новые значения

public class MainActivity extends ActionBarActivity {



    Button b1;

    TextView tv2;

    Integer count ;



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

        count++;


        b1= (Button)findViewById(R.id.b1);
        tv2=(TextView)findViewById(R.id.tv2);

        tv2.setText(count);

        if(count == 5) {
            Intent ii = new Intent(this,Activity2.class );

            Bundle bb = new Bundle();

            bb.putInt("Count",count);

            ii.putExtras(bb);

            startActivity(ii);

            finish();

        }

        else

        {
            Intent iii = new Intent(this,activity3.class);

             // Bundle bb1 = new Bundle();

            startActivity(iii);
        }
    }

    public void onStart()
    {


        Bundle b33 = getIntent().getExtras();

        count=b33.getInt("count");

        tv2.setText(count);
    }

в этом коде я хочу подсчитать количество раз, когда действие открывается, в этом случае действие 1 открывается только 5 раз, и после того, как это действие 3 открывает то, что я пытаюсь, убивает действие 1, прежде чем убить, я отправляю значение счетчика в действие 2 и после этого Я снова вызываю активность 1 и снова посылаю значение счетчика в активность 1, поэтому код будет выполняться с самого начала, поэтому снова значение будет равно 1, но я хочу, чтобы активность 1 перехватила новые значения счетчика в oncreate() или в onstart()

и ошибка в том, что приложение не открывает принудительное закрытие, и в logcat отображается сообщение об ошибке исключения Null, хотя я сделал все привязки.

1 ответ

Попробуйте этот код в методе onStart()

public void onStart() 
{ 
Bundle b33 = getIntent().getExtras();
if(b33 != null)
{

    count=b33.getInt("count");

    tv2.setText(count);
}
} 

менять:

Целое число;

в

int count=0;

также измените:

tv2.setText (количество);

(в обоих местах onCreate и onStart):

tv2.setText(String.valueOf(count));

Обновленный код:

public class MainActivity extends ActionBarActivity {



Button b1;

TextView tv2;

int count = 0 ;



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

    count++;


    b1= (Button)findViewById(R.id.b1);
    tv2=(TextView)findViewById(R.id.tv2);

    tv2.setText(String.ValueOf(count));

    if(count == 5) {
        Intent ii = new Intent(this,Activity2.class );

        Bundle bb = new Bundle();

        bb.putInt("Count",count);

        ii.putExtras(bb);

        startActivity(ii);

        finish();

    }

    else

    {
        Intent iii = new Intent(this,activity3.class);

         // Bundle bb1 = new Bundle();

        startActivity(iii);
    }
}

 public void onStart()
{
    super.onStart();
    Bundle b33 = getIntent().getExtras();
    if(b33 != null)
    {

        count=b33.getInt("count");

        tv2.setText(String.valueOf(count));
    }
}

Я попробовал этот код и он работает.

Другие вопросы по тегам