【问题标题】:how to manipulate results from onBackPressed?如何操作来自 onBackPressed 的结果?
【发布时间】:2020-01-09 12:42:55
【问题描述】:

我正在尝试开发一个简单的 scoreKeeper 应用程序。问题是我不知道如何操纵 onBackPressed 的结果。 我的意思是加或减。我尝试转换为整数并在 textView 中显示,但没有成功。

PS:从intent接收数据并简单显示在屏幕上我成功了。

这是我的代码: 这是我第二个意图中的一个例子,效果很好

@Override
    public void onBackPressed() {
        Intent i2 = new Intent();
        i2.putExtra("message2", mEditText.getText().toString());
        setResult(RESULT_OK, i2);

和 MainActivity

if (requestCode == 2 && resultCode == RESULT_OK) {
            mSecondscore.setText(data.getStringExtra("message2"));

但正如我所说,我想要别的东西 这是我的代码:

public void onBackPressed() {

                Intent i = new Intent();
                i.putExtra("message", mEditText.getText().toString());
                setResult(RESULT_OK, i);
                Toast.makeText(this, "You added " + mEditText.getText().toString() + " points", Toast.LENGTH_LONG).show();
            finish();

和 MainActivity

     if (requestCode == 1  && resultCode == RESULT_OK) {

  /*          String a = data.getStringExtra("message");
           int i = Integer.parseInt(a);
           String b = data.getStringExtra("message5");
             int z = Integer.parseInt(b);
             int fResult = i - z;
            String firstResult = Integer.toString(fResult);
            mFirstScore.setText......
  */

            textV.setText(data.getStringExtra("message"));
            int a = Integer.parseInt(textV.getText().toString());
            int b = a + 10;
            mFirstScore.setText(Integer.toString(b));

【问题讨论】:

    标签: android android-studio android-intent onactivityresult onbackpressed


    【解决方案1】:

    来自您发布的代码;错误在下面一行

    mFirstScore.setText(Integer.toString(b));
    

    使用下面的代码

    mFirstScore.setText(String.valueOf(b));
    

    对于您评论的错误,您可能缺少以下代码

        TextView textV= findViewById(R.id.your_id);
    

    your_id 是您在 XML 中分配的 id。

    【讨论】:

    • 那是我收到的错误:空对象引用上的方法'void android.widget.TextView.setText(java.lang.CharSequence)'。当 textView 未与 id 关联时,这是一个常见错误。而且我没有关联的ID:| .我只声明了TextView!我如何将数据“转换”为字符串,然后转换为整数
    • 那是因为你的 textview 是空的。您需要声明它并通过findViewbyId(R.id.your_id) 分配id。检查我的更新答案
    • 你是对的,我感谢你的耐心。正如我所说,我声明了 TextView ,因为我在网上找到了这个例子,没有分配它。如您所见,我如何从 TextView 以外的意图接收数据?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 2018-07-18
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多