2013-08-27 3 views
1

Я разрабатываю приложение для Android, в котором есть 5 вычислений в зависимости от ввода пользователя ... и эти 5 результатов вычислений должны отображаться через текстовые просмотры в другой деятельности ... Я сделал половину код .. в котором один результате отображаемый во второй активности TextView, но я нахожусь в замешательстве о том, как сделать другое 4 вычисление throufgh других TextViews ...Два текстовых результата в одном действии

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-й экран, или как их рассчитать? Если вы хотите передать более 1 значения второму «Деятельности», просто добавьте их в 'Bundle' с' .putExtra («calc2», «calc 2 values») 'и вытащите их с помощью .getStringExtra (" calc2 ")' ... –

+0

ya ... exaxtly ... в приведенном выше коде я передаю один расчет ... следующий Мне нужно рассчитать по-другому и отобразить его на втором экране в другом текстовом окне .... – roshanpeter

+0

.putExtra ("name", sum1 + "")); .... здесь, в этом коде, я уже передал один результат ... мне нужно передать другой результат активности ... где я должен добавить этот например, имя1 и sum2 ... как я добавлю его в комплект .. pls help me ... – roshanpeter

ответ

2

Я в растерянности от того, что вы делаете, но вы можете передать более одного extra в момент . If possible, do all of your calculations in суммы (View 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

Хорошо, надеюсь, что это сработает для вас. «Связки», как это было предложено другими, тоже хороши, но я обычно использую их только в том случае, если я буду передавать данные из одной «Деятельности» через несколько других, но это зависит от вас. – codeMagic

+0

@ Магия кода ... спасибо .. Я думаю, что это сработает. Я проверяю этот код ... Большое спасибо..4 ур помочь .... – roshanpeter

1

Вы можете использовать Bundle передать аргументы вашей деятельности:

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

Вы можете поместить любое количество дополнительных услуг в свое намерение, назвать его по-разному и использовать это имя, чтобы распознать эту часть данных в принимающей деятельности.

Смежные вопросы