В 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));
}
}
Я попробовал этот код и он работает.