我在同一个类中有两个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();
}
}
答案 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
返回类型,则需要使用类变量。在您的代码中,str1
是Method1
的本地代码,无法从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();
}
我建议您再次阅读编程语言的基础知识。这是一个相当简单的自学问题。