如何调用方法并将其返回值用作另一个方法参数?

时间:2017-01-11 18:47:22

标签: java android

public class MainActivity extends AppCompatActivity {

public int theMethod(){
    return 3;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView textView = (TextView) findViewById(R.id.theOutput);
    textView.setText(theMethod());
}

}

我试过这个。使用setText将theMethod的返回值写入屏幕。

结果是应用程序在我尝试启动时停止。

我怎么能这样做?感谢。

编辑: 感谢你们。现在它有效。 Luv ya all!

5 个答案:

答案 0 :(得分:1)

textView.setText(String.valueOf(theMethod())); 

答案 1 :(得分:1)

如果您查看TextView的文档,您可以看到setText(int)实际上需要资源ID:(https://developer.android.com/reference/android/widget/TextView.html#setText(int)

所以你必须把你的int变成CharSequence,你可以简单地做

textView.setText(theMethod()+""); 

答案 2 :(得分:0)

试试这样。

textview.setText( “” + theMethod());

发布你的logcat。

答案 3 :(得分:0)

您的问题是setText()上有两个TextView方法。

第一个是您正在使用的setText(int param),并且需要字符串资源ID ,例如R.string.some_text

您打算使用的是setText(String param),它会在String中显示TextView。要解决此问题,请使您的方法返回一个String,如下所示:

public String theMethod(){
    return String.valueOf(3);
}

答案 4 :(得分:0)

你的问题是,当你试图将int值传递给TextView的{​​{1}}方法时,它试图找到与你传递的整数相关的字符串资源,这就是为什么你的程序崩溃了

尝试将其设置如下

setText()

然后你不会得到textview.setText(String.valueOf(theMethod()));