繁体   English   中英

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

[英]How to call a method and use it's return value as an another method parameter?

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 的返回值写到屏幕上。

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

我怎么能那样做? 谢谢。

编辑:谢谢你们。 现在它起作用了。 爱你们!

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

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

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

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

像这样尝试。

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

并发布您的 logcat。

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

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

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

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

您的问题是,当您尝试将 int 值传递给TextViewsetText()方法时,它会尝试查找与您传递的整数关联的字符串资源,这就是您程序崩溃的原因。

尝试将其设置如下

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

然后你不会得到ResourceNotFoundException

暂无
暂无

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

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