如何将String值从一个void方法传递到另一个void方法

时间:2019-06-07 13:50:47

标签: java android string void

我在同一个类中有两个void方法。 Method2从textview获取数据并将其存储在字符串中。我想在Method1字符串中获取Method2字符串。 注意:这是一个android项目。 代码在这里:

class MainActivity extends AppCompatActivity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
}

void Method2()
{
    //this place i want to get str1 value like this:
    // String str2=str1
}
void Method1(View view)
{
    String str1=textView.getText().toString();
}
}

5 个答案:

答案 0 :(得分:1)

尝试此代码




   public class MainActivity extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

public static String s1 ;
public static String s2 ;


    void Method1(View view) {
      s1 = textView.getText().toString();
    }
 void Method2() {
       s2 = s1 ;
    }
}

答案 1 :(得分:0)

学习并遵循Java编码标准。这个简单的类无法通过测试。

方法1不应返回void;它应该从视图返回字符串。

方法2不应有空的参数列表;它应该具有一个String参数,该参数可以让您传递所需的值。

public class MainActivity extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void method2(String s) {
        //this place i want to get str1 value like this:
        // String str2=str1
    }

    public String method1(View view) {
         return textView.getText().toString();
    }
}

您没有method1如何获得对View的引用的示例。

此实现将允许您从String中提取View并将其传递给method2。那是你想要的吗?

答案 2 :(得分:0)

一种简单的方法是将参数添加到method2()

void method2(String str1) {
    //this place i want to get str1 value like this:
    // String str2=str1
}

然后从method1调用它。

答案 3 :(得分:0)

假设您希望两个方法均为void返回类型,则需要使用类变量。在您的代码中,str1Method1的本地代码,无法从Method1外部访问。使用类变量:

class MainActivity extends AppCompatActivity {
    String str1; 

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    void Method2() {
        String str2 = str1;
    }

    void Method1(View view) {
        str1 = textView.getText().toString();
    }
}

或者,如果Method2应该在Method1之后执行:

class MainActivity extends AppCompatActivity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    void Method2(String str) {
        String str2 = str1;
    }

    void Method1(View view) {
        String str1 = textView.getText().toString();
        Method2(str1); //pass the string to Method1
    }
}

答案 4 :(得分:0)

有多种方法可以做到这一点:

向Method2添加参数:

void Method2(String str) {
    // do something
}

使用静态变量:

static String str;

void Method1(View view) {
    str = textView.getText().toString();
}

使用成员变量:

String str;

void Method1(View view) {
    str = textView.getText().toString();
}

我建议您再次阅读编程语言的基础知识。这是一个相当简单的自学问题。