Intent and Activity
Добавлено: 30 мар 2014, 19:26
Здравствуйте! Помогите пожалуйста, я запуталась в Интент и отображении резултата формулы. Здесь код второй Активити, которая показывает поля для ввода чисел и кнопка "Считать". После того как кнопка нажата Результат долзен отобразиться на Первой Активити. Если можно, подскажите где я делаю ошибку. Заранее спасибо!
package com.sm_1Ass.brakagespeed;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.content.Intent;
public class ParameterActivity extends Activity {
private static final int START_COUNT=0;
EditText distance;
EditText factor;
EditText efficiency;
TextView result;
Button countResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_parameter);
distance = (EditText) findViewById(R.id.editNumber1);
factor = (EditText) findViewById(R.id.editNumber2);
efficiency = (EditText) findViewById(R.id.editNumber3);
result = (TextView) findViewById(R.id.textView3);
//setup button listener
countResult = (Button) findViewById(R.id.button2); //or R.id,action_settings
countResult.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
count();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == START_COUNT && resultCode == RESULT_OK){
double distance = data.getDoubleExtra("d", 1.00); //distance entered by the user
double factor = data.getDoubleExtra("f", 1.00); //drag factor entered by the user
double efficiency = data.getDoubleExtra("n", 1.00); //braking efficiency entered by the user
double resultCount = Math.sqrt(30 * distance * factor * efficiency);
resultCount = data.getExtras().getDouble("returnDouble");
result.setText("Result is: " + resultCount);
}
else {
Toast.makeText(this, "Wrong data entered!", Toast.LENGTH_SHORT).show();
}
super.onActivityResult(requestCode, resultCode, data);
}
private void count(){
//Intent launchCount = new Intent(this, CountActivity.class);
Intent intent = new Intent("android.intent.action.showresult");
intent.putExtra("d", distance.getText().toString());
intent.putExtra("f", factor.getText().toString());
intent.putExtra("n", efficiency.getText().toString());
intent.putExtra("r", result.getText().toString());
startActivityForResult(intent, 1);
}
}
package com.sm_1Ass.brakagespeed;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.content.Intent;
public class ParameterActivity extends Activity {
private static final int START_COUNT=0;
EditText distance;
EditText factor;
EditText efficiency;
TextView result;
Button countResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_parameter);
distance = (EditText) findViewById(R.id.editNumber1);
factor = (EditText) findViewById(R.id.editNumber2);
efficiency = (EditText) findViewById(R.id.editNumber3);
result = (TextView) findViewById(R.id.textView3);
//setup button listener
countResult = (Button) findViewById(R.id.button2); //or R.id,action_settings
countResult.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
count();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == START_COUNT && resultCode == RESULT_OK){
double distance = data.getDoubleExtra("d", 1.00); //distance entered by the user
double factor = data.getDoubleExtra("f", 1.00); //drag factor entered by the user
double efficiency = data.getDoubleExtra("n", 1.00); //braking efficiency entered by the user
double resultCount = Math.sqrt(30 * distance * factor * efficiency);
resultCount = data.getExtras().getDouble("returnDouble");
result.setText("Result is: " + resultCount);
}
else {
Toast.makeText(this, "Wrong data entered!", Toast.LENGTH_SHORT).show();
}
super.onActivityResult(requestCode, resultCode, data);
}
private void count(){
//Intent launchCount = new Intent(this, CountActivity.class);
Intent intent = new Intent("android.intent.action.showresult");
intent.putExtra("d", distance.getText().toString());
intent.putExtra("f", factor.getText().toString());
intent.putExtra("n", efficiency.getText().toString());
intent.putExtra("r", result.getText().toString());
startActivityForResult(intent, 1);
}
}