2013-08-27 22 views
1

我正在开发一个Android应用程序,其中5个计算根据用户的输入有...这5个计算结果必须通过textviews另一活动显示......我做了一半代码..其中一个结果diplayed由TextView的第二个活动,但我在有关如何做其他4个计算throufgh其他textviews混乱......两个TextView的结果

public void sum(View v) 
    { 
     long sum1=0; 
     EditText et1 = (EditText) findViewById (R.id.editText1); 
     EditText et2 = (EditText) findViewById (R.id.editText2); 
     EditText et3 = (EditText) findViewById (R.id.editText3); 
     EditText et4 = (EditText) findViewById (R.id.editText4); 



     sum1=getSum(et1.getText().toString() + et2.getText().toString() + et3.getText().toString() + et4.getText().toString()); 

startActivity(new Intent(this, result.class).putExtra("name", sum1 + "")); 

    } 

public long getSum(String text) 
    { 
     // TODO Auto-generated method stub 
     long sum1 = 0; 
     char[] name = new char[text.length()]; 
     name = text.toCharArray(); 


     for(int i=0; i<text.length(); i++) 
     { 
      sum1 += value(name[i]); 

     } 
     while (sum1>9) 
     { 
      sum1 = findDigitSum(sum1); 
     } 

     return sum1; 
    } 





    public long findDigitSum(long n) 
    { 
     int sum1 = 0; 
     while (n != 0) 
     { 
      sum1 += n % 10; 
      n = n/10; 
     } 
     return sum1; 
    } 



    private int value(char a) { 
     // TODO Auto-generated method stub 
     switch(a) { 
     case 'A': 
      return 1; 
     case 'B': 
      return 2; 
     case 'C': 
      return 3; 
     case 'D': 
      return 4; 
     case 'E': 
      return 5; 
     case 'F': 
      return 6; 
     case 'G': 
      return 7; 
      case 'H': 
      return 8; 
      case 'I': 
      return 9; 
      case 'J': 
       return 1; 
      case 'K': 
       return 2; 
      case 'L': 
       return 3; 
      case 'M': 
       return 4; 
      case 'N': 
       return 5; 
      case 'O': 
       return 6; 
      case 'P': 
       return 7; 
      case 'Q': 
       return 8; 
      case 'R': 
       return 9; 
      case 'S': 
       return 1; 
      case 'T': 
       return 2; 
       case 'U': 
       return 3; 
       case 'V': 
        return 4; 
       case 'W': 
        return 5; 
       case 'X': 
        return 6; 
       case 'Y': 
        return 7; 
       case 'Z': 
        return 8; 
       default: 
      return 0; 
    } 
    } 

次活动

result.java

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.result_xm); 
    TextView txt2 = (TextView) findViewById(R.id.textView21); 
    txt2.setText(getIntent().getStringExtra("name")); 
    } 
+0

我不知道你在问什么,你想知道如何通过你计算到第2屏幕中的值,或如何去实际计算呢?如果你想向第二个'Activity'传递多于1的值,只需要用'.putExtra(“calc2”,“calc 2 values”)将它们添加到'Bundle'中,然后用'.getStringExtra(“ calc2“)'... –

+0

ya ... exaxtly ...在上面的代码中,我传递了一个计算...接下来,我需要以不同的方式进行计算,并在另一个textview的第二个屏幕中显示.... – roshanpeter

+0

.putExtra(“name”,sum1 +“”)); ....在这段代码中,我已经传递了一个结果...我需要将另一个结果传递给活动...在那里我必须添加一个例如name1和sum2 ...我将如何将它添加到捆绑包..请帮助我... – roshanpeter

回答

2

我在困惑我你在做什么,但你可以在同一时间. If possible, do all of your calculations in和传递多个extra(视图V)then pass them all. So change your Intent`为类似

Intent i = new Intent(this, result.class) 
i.putExtra("sum1", sum1 + ""); 
i.putExtra("sum2". String.valueOf(sum2)); 
// etc 
startActivity(i); 

然后让他们在你的下一个Activity喜欢的东西

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.result_xm); 
    Intent i = getIntent(); 
    String sum1 = i.getStringExtra("sum1"); 
    String sum2 = i.getStringExtra("sum2"); 
    // etc 
+0

感谢codemagic ...让我查 – roshanpeter

+0

好的,希望它适合你。正如其他人所建议的,“Bundles”也很好,但我通常只使用它们,如果我将数据从一个“Activity”传递给其他多个人,但这取决于您。 – codeMagic

+0

@代码魔术......谢谢..我认为这将工作..我正在检查这个代码...非常感谢..4你的帮助.... – roshanpeter

1

您可以使用捆绑传递参数给你的活动:

Bundle bundle = new Bundle(); 

bundle.putString("arg1", argument to pass); 
bundle.putString("arg2", argument to pass); 
bundle.putString("arg3", argument to pass); 
bundle.putString("arg4", argument to pass); 

intent.putExtras(bundle); 
startActivity(intent); 
+0

感谢克里斯...乌拉圭回合的帮助......让我的代码检查..如果有任何需要帮助4我..请帮助...再次感谢.. – roshanpeter

0

您可以在意图中添加任意数量的附加内容,并以不同的名称命名,并使用该名称识别接收活动中的那部分数据。