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!
答案 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()));