0

我已创建此代码但无法正常工作,我该怎么办?我希望字符串的内容根据变量取不同的值..

if ((euro9 == 0) && (cent9 == 00)) {
                    String msg1 = "Euro:"+MailA.this.euro1+","+MailA.this.cent1+"   "+"Motivazione:"+MailA.this.motivazione+"\n";
                    String msg3 = "Euro:"+MailA.this.euro3+","+MailA.this.cent3+"   "+"Motivazione:"+MailA.this.motivazione2+"\n";
                    String msg4 = "Euro:"+MailA.this.euro4+","+MailA.this.cent4+"   "+"Motivazione:"+MailA.this.motivazione4+"\n";
                    String msg5 = "Euro:"+MailA.this.euro5+","+MailA.this.cent5+"   "+"Motivazione:"+MailA.this.motivazione5+"\n";
                    String msg6 = "Euro:"+MailA.this.euro6+","+MailA.this.cent6+"   "+"Motivazione:"+MailA.this.motivazione6+"\n";
                    String msg7 = "Euro:"+MailA.this.euro7+","+MailA.this.cent7+"   "+"Motivazione:"+MailA.this.motivazione7+"\n";
                    String msg8 = "Euro:"+MailA.this.euro8+","+MailA.this.cent8+"   "+"Motivazione:"+MailA.this.motivazione8+"\n";
                    String msg9 = "";

                }

                if ((euro9 != 0) && (cent9 != 00)) {
                    String msg1 = "Euro:"+MailA.this.euro1+","+MailA.this.cent1+"   "+"Motivazione:"+MailA.this.motivazione+"\n";
                    String msg3 = "Euro:"+MailA.this.euro3+","+MailA.this.cent3+"   "+"Motivazione:"+MailA.this.motivazione2+"\n";
                    String msg4 = "Euro:"+MailA.this.euro4+","+MailA.this.cent4+"   "+"Motivazione:"+MailA.this.motivazione4+"\n";
                    String msg5 = "Euro:"+MailA.this.euro5+","+MailA.this.cent5+"   "+"Motivazione:"+MailA.this.motivazione5+"\n";
                    String msg6 = "Euro:"+MailA.this.euro6+","+MailA.this.cent6+"   "+"Motivazione:"+MailA.this.motivazione6+"\n";
                    String msg7 = "Euro:"+MailA.this.euro7+","+MailA.this.cent7+"   "+"Motivazione:"+MailA.this.motivazione7+"\n";
                    String msg8 = "Euro:"+MailA.this.euro8+","+MailA.this.cent8+"   "+"Motivazione:"+MailA.this.motivazione8+"\n";
                    String msg9 = "Euro:"+MailA.this.euro9+","+MailA.this.cent9+"   "+"Motivazione:"+MailA.this.motivazione9+"\n";

                }
                sh.putExtra(Intent.EXTRA_TEXT, msg1+msg3+msg4+msg5+msg6+msg7+msg8+msg9);

字符串不能被调用,为什么?

4

2 回答 2

2

在 if 循环之外声明字符串(msg1,msg3 等)

您使用的局部变量的范围只能在 if 条件内访问,因为您在 if 条件内声明它们

于 2013-11-12T16:21:26.390 回答
1

您可能想要这样做:

  • 首先声明你的变量(括号外,以便在它们之后可以访问)
  • 赋值
  • 使用它们

但是下面的代码是如此重复,你应该避免这样做。看到最后一个替代

String msg1, msg2, msg3, msg4, msg5, msg6, msg7, msg8, msg9;
    if ((euro9 == 0) && (cent9 == 00))
    {
        msg1 = "Euro:" + MailA.this.euro1 + "," + MailA.this.cent1 + "   " + "Motivazione:"
                + MailA.this.motivazione + "\n";
        msg3 = "Euro:" + MailA.this.euro3 + "," + MailA.this.cent3 + "   " + "Motivazione:"
                + MailA.this.motivazione2 + "\n";
        msg4 = "Euro:" + MailA.this.euro4 + "," + MailA.this.cent4 + "   " + "Motivazione:"
                + MailA.this.motivazione4 + "\n";
        msg5 = "Euro:" + MailA.this.euro5 + "," + MailA.this.cent5 + "   " + "Motivazione:"
                + MailA.this.motivazione5 + "\n";
        msg6 = "Euro:" + MailA.this.euro6 + "," + MailA.this.cent6 + "   " + "Motivazione:"
                + MailA.this.motivazione6 + "\n";
        msg7 = "Euro:" + MailA.this.euro7 + "," + MailA.this.cent7 + "   " + "Motivazione:"
                + MailA.this.motivazione7 + "\n";
        msg8 = "Euro:" + MailA.this.euro8 + "," + MailA.this.cent8 + "   " + "Motivazione:"
                + MailA.this.motivazione8 + "\n";
        msg9 = "";

    }

    if ((euro9 != 0) && (cent9 != 00))
    {
        msg1 = "Euro:" + MailA.this.euro1 + "," + MailA.this.cent1 + "   " + "Motivazione:"
                + MailA.this.motivazione + "\n";
        msg3 = "Euro:" + MailA.this.euro3 + "," + MailA.this.cent3 + "   " + "Motivazione:"
                + MailA.this.motivazione2 + "\n";
        msg4 = "Euro:" + MailA.this.euro4 + "," + MailA.this.cent4 + "   " + "Motivazione:"
                + MailA.this.motivazione4 + "\n";
        msg5 = "Euro:" + MailA.this.euro5 + "," + MailA.this.cent5 + "   " + "Motivazione:"
                + MailA.this.motivazione5 + "\n";
        msg6 = "Euro:" + MailA.this.euro6 + "," + MailA.this.cent6 + "   " + "Motivazione:"
                + MailA.this.motivazione6 + "\n";
        msg7 = "Euro:" + MailA.this.euro7 + "," + MailA.this.cent7 + "   " + "Motivazione:"
                + MailA.this.motivazione7 + "\n";
        msg8 = "Euro:" + MailA.this.euro8 + "," + MailA.this.cent8 + "   " + "Motivazione:"
                + MailA.this.motivazione8 + "\n";
        msg9 = "Euro:" + MailA.this.euro9 + "," + MailA.this.cent9 + "   " + "Motivazione:"
                + MailA.this.motivazione9 + "\n";

    }
    sh.putExtra(Intent.EXTRA_TEXT, msg1 + msg3 + msg4 + msg5 + msg6 + msg7 + msg8 + msg9);

我强烈建议您使用以下方法,而不是上面的方法。

在单独的文件中创建对象

public class MyObject
{
    public String euro;
    public String cent;
    public String motivazione;

    public MyObject(String euro, String cent, String motivazione)
    {
        this.euro = euro;
        this.cent = cent;
        this.motivazione = motivazione;
    }
}

并使用它

        // Create an instance of MyObject
    MyObject obj = new MyObject("asdad", "fcsfc", "fdsf");

        // Initialize a list that will hold all instances
    HashMap<Integer, MyObject> list = new HashMap<Integer, MyObject>();
    list.put(1, obj);
    // OR
    list.put(2, new MyObject("aaaaaaaa", "bbbbbbb", "ccccccc"));

    // And retrieve your item with
    MyObject my = list.get(2);

最后,您将能够执行以下操作:

    if (condition)
    {
        for (Map.Entry<Integer, MyObject> entry : list.entrySet())
        {
            MyObject currentObject = entry.getValue();
            msg += "Euro:" + currentObject.euro + "," + currentObject.cent + "   " + "Motivazione:"
                    + currentObject.motivazione + "\n";
        }
    }
sh.putExtra(Intent.EXTRA_TEXT, msg);
于 2013-11-12T16:46:25.673 回答