Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一旦计时器用完,如何使用intent将字符串传递给主活动?_Java_Android_Android Intent - Fatal编程技术网

Java 一旦计时器用完,如何使用intent将字符串传递给主活动?

Java 一旦计时器用完,如何使用intent将字符串传递给主活动?,java,android,android-intent,Java,Android,Android Intent,我试图使用意图将我的主要活动上的edittext设置为与我的第二个活动上的textview相等。第二个活动有一个按钮,当按下该按钮时,计时器将从10秒开始倒计时,并在每次按下该按钮时计数。10秒结束后,我想获取textview的值(按按钮按下的次数设置),将主活动上的edittext设置为等于它,然后返回主活动 其思想是,您可以手动输入主要活动的计数,或使用内置计时器帮助您计数 我的应用程序一打开就崩溃了,我尝试了多种方法都没有用。我认为问题可能源于主活动“查找”意图的onCreate,但它并不

我试图使用意图将我的主要活动上的edittext设置为与我的第二个活动上的textview相等。第二个活动有一个按钮,当按下该按钮时,计时器将从10秒开始倒计时,并在每次按下该按钮时计数。10秒结束后,我想获取textview的值(按按钮按下的次数设置),将主活动上的edittext设置为等于它,然后返回主活动

其思想是,您可以手动输入主要活动的计数,或使用内置计时器帮助您计数

我的应用程序一打开就崩溃了,我尝试了多种方法都没有用。我认为问题可能源于主活动“查找”意图的onCreate,但它并不存在,因为当按下第二个活动上的按钮时,它正在运行

主要活动

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    qtyInput = (EditText) findViewById(R.id.qtyInput);
    valueInput = (EditText) findViewById(R.id.valueInput);
    resultText = (TextView) findViewById(R.id.resultText);

    Intent intent = getIntent();
    String clickCount = intent.getExtras().getString("clickCount");
    qtyInput.setText(clickCount);

    Button calcButton = (Button) findViewById(R.id.calcButton);
    calcButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            float qty = Float.parseFloat(qtyInput.getText().toString());
            float value = Float.parseFloat(valueInput.getText().toString());
            float total = qty * value * 60;
            String stringTotal = String.format("%.0f", total);
            resultText.setText(stringTotal);
        }
    });

    Button countButton = (Button) findViewById(R.id.countButton);
    countButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, CountActivity.class));
        }
    });
}
    final TextView countdownTimer = (TextView) findViewById(R.id.countdownTimer);

    final CountDownTimer timer = new CountDownTimer(10000,1000) {
        public void onTick(long millisUntilFinished) {
            int seconds = (int) ((millisUntilFinished / 1000));
            countdownTimer.setText("Time left: " + millisUntilFinished / 1000);
        }
        public void onFinish() {
            String clickCount = countDisplay.getText().toString();
            final Intent passCount = new Intent(CountActivity.this, MainActivity.class);
            passCount.putExtra("clickCount", clickCount);
            startActivity(passCount);
        }
    };

    final TextView countDisplay = (TextView) findViewById(R.id.countDisplay);
        int count;

    Button countOneButton = (Button) findViewById(R.id.countOneButton);
    countOneButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view){
            if (clickcount==0) {
                timer.start();
                clickcount++;
                countDisplay.setText("Count: " + clickcount);
            }
             else {
                clickcount++;
                countDisplay.setText("Count: " + clickcount);
            }

        }
    });

}
第二项活动

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    qtyInput = (EditText) findViewById(R.id.qtyInput);
    valueInput = (EditText) findViewById(R.id.valueInput);
    resultText = (TextView) findViewById(R.id.resultText);

    Intent intent = getIntent();
    String clickCount = intent.getExtras().getString("clickCount");
    qtyInput.setText(clickCount);

    Button calcButton = (Button) findViewById(R.id.calcButton);
    calcButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            float qty = Float.parseFloat(qtyInput.getText().toString());
            float value = Float.parseFloat(valueInput.getText().toString());
            float total = qty * value * 60;
            String stringTotal = String.format("%.0f", total);
            resultText.setText(stringTotal);
        }
    });

    Button countButton = (Button) findViewById(R.id.countButton);
    countButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, CountActivity.class));
        }
    });
}
    final TextView countdownTimer = (TextView) findViewById(R.id.countdownTimer);

    final CountDownTimer timer = new CountDownTimer(10000,1000) {
        public void onTick(long millisUntilFinished) {
            int seconds = (int) ((millisUntilFinished / 1000));
            countdownTimer.setText("Time left: " + millisUntilFinished / 1000);
        }
        public void onFinish() {
            String clickCount = countDisplay.getText().toString();
            final Intent passCount = new Intent(CountActivity.this, MainActivity.class);
            passCount.putExtra("clickCount", clickCount);
            startActivity(passCount);
        }
    };

    final TextView countDisplay = (TextView) findViewById(R.id.countDisplay);
        int count;

    Button countOneButton = (Button) findViewById(R.id.countOneButton);
    countOneButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view){
            if (clickcount==0) {
                timer.start();
                clickcount++;
                countDisplay.setText("Count: " + clickcount);
            }
             else {
                clickcount++;
                countDisplay.setText("Count: " + clickcount);
            }

        }
    });

}
我想获取textview的值(设置为 按钮),将主活动上的编辑文本设置为 然后回到主要活动

CountActivity
获取
MainActivity
中数据的两种方法:

1。当前代码调用
MainActivity。启动
CountActivity
活动后,此.finish()

   startActivity(new Intent(MainActivity.this, CountActivity.class));
   MainActivity.this.finish();
Intent passCount = new Intent();
passCount.putExtra("clickCount", clickCount);
CountActivity.this.setResult(Activity.RESULT_OK,passCount);
CountActivity.this.finish();
2.使用
startActivityForResult
而不是
startActivity
启动
CountActivity
活动,并覆盖
main活动中的
onActivityResult
CountActivity
获取数据。在完成
CountActivity
活动之前发送数据调用
setResult
方法

   startActivity(new Intent(MainActivity.this, CountActivity.class));
   MainActivity.this.finish();
Intent passCount = new Intent();
passCount.putExtra("clickCount", clickCount);
CountActivity.this.setResult(Activity.RESULT_OK,passCount);
CountActivity.this.finish();

好吧,这是有道理的。我研究了如何使用startActivityForResult,这似乎是让这项工作对我来说最有效的方法。我一直在摆弄它,我想我离它很近了,但现在计时器用完了,它就要崩溃了,应该回到主活动了。我将returnIntent的代码放入倒计时计时器内的onFinish代码块中。这是正确的位置吗?另外,如何覆盖onActivityResult?@gah4716:请参见以下示例以获取帮助