简体   繁体   English

Android意向无法正常工作

[英]Android intent not working correctly

I developed an app.. it is a numerology app.. where user's firstname, second name and third name is collected and calculated... values from 1 -9 are assigned for each values and when calculating these value for all letters has to be added together and make into a one digit 1 - 9. after that this value is given to textview in another activity and the result is displayed.... my problem is i did the programming .. but when adding .. correct value is not displaying.. i used switch case for giving values for each letter... i gave 0 as default value.. when result is displayed the value is displaying as 0 . 我开发了一个应用程序..它是一个命理学应用程序..其中收集并计算了用户的名字,姓氏和名字...为每个值分配1 -9的值,并且在计算所有字母的这些值时必须加在一起,并制成一个数字1-9。之后,在另一个活动中将此值提供给textview并显示结果。...我的问题是我进行了编程..但是添加..时不正确我使用开关盒为每个字母提供值...我给0作为默认值..当显示结果时,该值显示为0。 if i change it to 1 then 1 is added to the value and that value is isplaying.. please check my code and if ther any mistake pls point it out 4 me... thanks... 如果我将其更改为1,则将1添加到该值,并且该值正在播放..请检查我的代码,如果有任何错误,请指出它4我...谢谢...

MainActivity.java MainActivity.java

public void gReport(View V)
{
long sum1 = 0;
long sum2 = 0;
long sum3 = 0;
long sum7 = 0;
long sum8 = 0;
long sum9 = 0;
long sum10 = 0;
EditText et1 = (EditText) findViewById (R.id.editText1);
EditText et2 = (EditText) findViewById (R.id.editText2);
EditText et3 = (EditText) findViewById (R.id.editText3);

EditText et7 = (EditText) findViewById (R.id.editText7);
EditText et8 = (EditText) findViewById (R.id.editText8);
EditText et9 = (EditText) findViewById (R.id.editText9);

sum1 = getSum1(et1.getText().toString());
sum2 = getSum2(et2.getText().toString());
sum3 = getSum3(et3.getText().toString());

/*sum7 = getSum7(et7.getText().toString());
sum8 = getSum8(et8.getText().toString());
sum9 = getSum9(et9.getText().toString());*/



sum10 = getSum10 (et1.getText().toString() + et2.getText().toString() + et3.getText().toString());  
Intent i = new Intent(this, FirstResult.class);
i.putExtra("name10", sum10 + "");
startActivity(i);
}

private long getSum10(String text)  
{
long sum10 = 0;
char[] name10 = new char[text.length()];
name10 = text.toCharArray();

for(int i=0; i<text.length(); i++)
{
     sum10 += value10( name10[i] );
}
while (sum10>9)
{                    
      sum10 = findDigitSum10(sum10);
}
  return sum10;         
}
private long value10(char a) 
{
        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;
            }       
        }

 private long findDigitSum10(long n)        
 {

  int sum10=0;
        while (n != 0)
            {
             sum10 += n % 10;
             n = n / 10;
            }

           return sum10;

}
}

ResultActivity.java ResultActivity.java

@Override
    protected void onCreate(Bundle savedInstanceState) 

    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.firstresult_xm);


        TextView txt1 = (TextView) findViewById (R.id.textView2);
        txt1.setText(getIntent().getStringExtra("name10"));


    }

you have no key sum10 inside your intent , but only name10 . 您的intent没有键sum10 ,而只有name10 You should see the String int first TextView and nothing in the second one 您应该在第一个TextView看到String int,在第二个中什么都看不到

May be encoding in eclipse is different that Android? Eclipse中的编码可能与Android不同吗? Try to change it to UTF-8 in propreties of project. 尝试根据项目属性将其更改为UTF-8。

I tried such concole code. 我尝试过这样的concol代码。 Your function of value10 works correctly. 您的value10函数正常工作。

public class HelloWorld {
  public static void main(String[] args) {

    HelloWorld hw = new HelloWorld();
   long a = hw.value10('F');
   System.out.println("val: " + a);
  }
  private long value10(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;


      }


  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM