1

Androidプロジェクトで、編集テキスト領域からユーザー番号を取得しようとしています。それは私のコードですでに完全に完了しているかもしれません。キャプチャしたデータを方程式で使用する方法がわかりません。結果をテキストボックスを介して画面の2番目のアクティビティに表示します。解決策は、おそらく現在のように思われるよりも単純です。全体的な詳細や情報が必要な場合はお知らせください。

最初の活動:

 package com.klinetel.bac.calculator;

 import android.os.Bundle;
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.view.View;
 import android.widget.*;
 import android.content.*;


 public class MainActivity extends Activity {

RadioGroup group1;
RadioButton maleRadio, femaleRadio;
 // Button button = (Button)findViewById(R.id.button1);

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    AlertDialog.Builder alert = new AlertDialog.Builder(this);
    alert.setTitle("The Result");
    alert.setMessage("Your Blood Alcohol Content Percentage is:");
    alert.setPositiveButton("OK", null);
    alert.create().show();


Button button = (Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener(){

    @Override
    public void onClick(View view)
    {
        Intent intent = new Intent(view.getContext(),ResultsActivity.class);
        startActivityForResult(intent,0);
        finish();

    }

});
}



//Input conversion-to-string-attributes
public void calcBAC(){

   //weight
   EditText editWeight = (EditText)findViewById(R.id.editText1);
   double weight = Double.parseDouble(editWeight.getText().toString());

   //hours
   EditText editHours = (EditText)findViewById(R.id.editText2);
   double hours = Double.parseDouble(editHours.getText().toString()); 

   //drinks
   EditText editDrinks = (EditText)findViewById(R.id.editText3);
   double drinks = Double.parseDouble(editDrinks.getText().toString());

   //radio buttons
   maleRadio=(RadioButton)findViewById(R.id.radio0);

   femaleRadio=(RadioButton)findViewById(R.id.radio1);


   //bac total
   double resultBAC=0;

   //male formula
   if(maleRadio.isChecked()){

       resultBAC=(((EQUATION HERE))/2;

   }
   //female formula
   else if(femaleRadio.isChecked()){

       resultBAC=(((EQUATION HERE))/2;
   }

}


}

2番目のアクティビティ:

package com.klinetel.bac.calculator;

import android.os.Bundle;
import android.app.Activity;
import android.view.*;
import android.widget.*;
import android.content.Intent;


public class ResultsActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_results);


TextView result;

Button button = (Button)findViewById(R.id.backButton);

button.setOnClickListener(new View.OnClickListener(){

    @Override
    public void onClick(View view)
    {
        Intent intent = new Intent(view.getContext(),MainActivity.class);
        startActivityForResult(intent,0);
        finish();

    }


});
result=(TextView)findViewById(R.id.textView1);
//result=resultBAC.getValue;
}
}
4

4 に答える 4

4

Extraを使用して、データを2番目のアクティビティに渡すことができます。単一の値をインテントに渡すか、アクティビティ間で渡すさまざまなデータ値がある場合は「バンドル」を渡すことができます

最初のアクティビティで、以下を追加します。

Intent intent = new Intent(view.getContext(),ResultsActivity.class);
intent.putExtra("extraname", "extravalue");
intent.putExtra("extraname2", 9.99);
startActivityForResult(intent,0);
finish();

次に、受信アクティビティについて

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_results);
String extra = getIntent().getStringExtra("extraname") //returns null if nothing
Double extra2 = getIntent().getDoubleExtra("extraname2")

于 2012-08-22T19:09:14.663 に答える
1

次のアクティビティにデータを送信する場合は、Intent.putExtra()およびIntent.getExtra()を使用して、アクティビティ間でそれぞれデータを送信および取得できます。

于 2012-08-22T18:52:23.987 に答える
1

'Bundle'クラスを使用して、アクティビティ間でデータを共有できます。たとえば、次のようなことができます。

Bundle extras = getIntent().getExtras();
if (extras != null) 
{
    username = extras.getString("username");
    password = extras.getString("password");
}
于 2012-08-22T18:56:14.503 に答える
0

..または、静的メソッドを使用してユーティリティクラスを実装するだけで、アクティビティ間で渡したい値を格納できます。

于 2012-08-22T21:41:36.190 に答える