【问题标题】:in onStart() i want to set new values在 onStart() 我想设置新值
【发布时间】:2015-06-27 16:27:01
【问题描述】:
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然后我再次调用activity1并再次将计数值发送到activity1,因此代码将从头开始执行,因此值再次为1,但我希望activity1在oncreate()或in中捕获count的新值onstart()

错误是应用程序没有打开它的强制关闭,并且在 logcat 中显示空异常错误,尽管我做了所有的绑定。

【问题讨论】:

标签: android android-activity forceclose activity-lifecycle onstart


【解决方案1】:

在 onStart() 方法中尝试此代码

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

    count=b33.getInt("count");

    tv2.setText(count);
}
} 

改变:

整数;

int count=0;

也改变:

tv2.setText(count);

到(在 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));
    }
}

我试过这段代码和它的工作原理。

【讨论】:

  • 仍然是 NullException 错误,即使我正确绑定了所有内容,我也不明白为什么它显示错误。
  • 我们不能像 java 那样指定 int,虽然这样做会显示错误
  • 是的,即使我检查了清单文件也没有什么奇怪的。
  • 请进行上述更改并再次显示 LogCat。
  • @virajwagh 检查我尝试过的更新的代码部分及其在此处的工作。希望它也对你有用。
猜你喜欢
  • 1970-01-01
  • 2018-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多