我一直在尝试制作一个简单的程序,它取一个小的随机数并在textview中显示给用户.在最终获得随机数生成(我认为)后,程序会在我运行时抛出致命异常.代码没有错误,但我是一个完整的新手,我开始简单,以便我可以学习.几个小时后,我已经提交寻求帮助.我几乎可以肯定我的随机数字片段是在错误的区域,我只是不确定在哪里放.我尝试的每个地方都抛出同样的错误.
这是.java
package com.eai.vgp;
import java.util.Random;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
Random pp = new Random();
int a1 = pp.nextInt(10);
TextView tv = (TextView)findViewById(R.id.tv);{
tv.setText(a1);}
}
Run Code Online (Sandbox Code Playgroud)
XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:id="@+id/tv" …Run Code Online (Sandbox Code Playgroud) 是使用Java转换为String
"" + <int value>
Run Code Online (Sandbox Code Playgroud)
不好的做法?与String.valueOf(...)相比,它有任何缺点吗?
代码示例:
int i = 25;
return "" + i;
Run Code Online (Sandbox Code Playgroud)
VS:
int i = 25;
return String.valueOf(i);
Run Code Online (Sandbox Code Playgroud)
更新:(来自评论)
那么Integer.toString(int i)与String.valueOf(...)相比呢?
为什么要使用valueOf()?为什么我不能使用隐式转换?
代码段如下所示:
BigDecimal xmlvalue = new BigDecimal(12.3434379328948927894789237);
String str1 = String.valueOf(xmlvalue); //Option 1
String str2 = "" + xmlvalue; //Option 2
Run Code Online (Sandbox Code Playgroud)