Java setText不向TextView显示值
让我先说一句,我是Android编程新手。我一直在尽我应有的努力进行研究,但毫无结果。我有下面的源代码,在返回返回值时遇到问题 我在eclipse上列出了代码,它不会触发任何错误。但是当我构建下面的代码时,它返回一个错误。在debug视图中检查了这些值之后,我可以看到没有绑定到TextView的正确值Java setText不向TextView显示值,java,android,eclipse,Java,Android,Eclipse,让我先说一句,我是Android编程新手。我一直在尽我应有的努力进行研究,但毫无结果。我有下面的源代码,在返回返回值时遇到问题 我在eclipse上列出了代码,它不会触发任何错误。但是当我构建下面的代码时,它返回一个错误。在debug视图中检查了这些值之后,我可以看到没有绑定到TextView的正确值 public class MyFirstActivity extends Activity { /** Called when the activity is first created. */
public class MyFirstActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
calculateResult(2012, 9, 29);
}
private void calculateResult(int year, int month, int day) {
long days = 0L;
int returning = 0;
java.util.Calendar cal = new java.util.GregorianCalendar(year, month-1, day);
long todayMI = new java.util.Date().getTime();
long calMI = cal.getTimeInMillis();
long millDiff = calMI - todayMI;
if (millDiff < 0) {
returning = 0;
} else {
days = millDiff / 1000 / 60 / 60;
returning = (int) Math.ceil(days / 24f);
}
TextView days_int_remaining = (TextView) findViewById(R.id.days_int_remaining);
days_int_remaining.setText(returning);
}
}
公共类MyFirstActivity扩展活动{
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
计算结果(2012,9,29);
}
私有无效计算结果(整数年、整数月、整数天){
长天数=0L;
int=0;
java.util.Calendar cal=新java.util.Gregorianalendar(年、月、日);
long todayMI=new java.util.Date().getTime();
long calMI=cal.getTimeInMillis();
长米尔迪夫=卡尔米-今天米;
if(millDiff<0){
返回=0;
}否则{
天数=millDiff/1000/60/60;
返回=(int)Math.ceil(天/24f);
}
TextView剩余天数=(TextView)findViewById(R.id.days\u int\u剩余天数);
剩余天数。setText(返回);
}
}
如果有帮助,下面是我的布局XML上的文本视图:
<TextView
android:id="@+id/days_int_remaining"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
android:shadowColor="#5000"
android:shadowDx="4"
android:shadowDy="3"
android:shadowRadius="1"
android:textColor="#fff"
android:textSize="70dip"
android:textStyle="bold"
/>
可能是我遗漏了一些简单的东西。任何能帮助我进一步理解代码的东西都将不胜感激 将
返回的int转换为字符串。将返回的int转换为字符串。我相信您得到的错误是“运行时错误-关闭应用程序”
如果您查看重载的方法setText(…)
,您将看到它接受带有CharSequence
(这可能是您想要的)和int resId
(这是您提供的)的参数
resId-将查找/values/strings.xml
中是否有具有给定名称
属性的资源
解决方案是提供字符串
:
days_int_remaining.setText(String.valueOf(returning));
我相信您得到的错误是“运行时错误-关闭应用程序”
如果您查看重载的方法setText(…)
,您将看到它接受带有CharSequence
(这可能是您想要的)和int resId
(这是您提供的)的参数
resId-将查找/values/strings.xml
中是否有具有给定名称
属性的资源
解决方案是提供字符串
:
days_int_remaining.setText(String.valueOf(returning));
只用
TextView days_int_remaining = (TextView) findViewById(R.id.days_int_remaining);
days_int_remaining.setText(String.valueOf(returning));
而不是
TextView days_int_remaining = (TextView) findViewById(R.id.days_int_remaining);
days_int_remaining.setText(returning);
只用
TextView days_int_remaining = (TextView) findViewById(R.id.days_int_remaining);
days_int_remaining.setText(String.valueOf(returning));
而不是
TextView days_int_remaining = (TextView) findViewById(R.id.days_int_remaining);
days_int_remaining.setText(returning);
请尝试以下代码:
基本上,在调用setText()之前,必须将int值转换为字符串
公共类MyFirstActivity扩展活动{
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView剩余天数=(TextView)findViewById(R.id.days\u int\u剩余天数);
int resultat=计算结果(2012,9,29);
剩余天数.setText(Integer.toString(resultat));
}
私有整数计算结果(整数年、整数月、整数日){
长天数=0L;
int=0;
java.util.Calendar cal=新java.util.Gregorianalendar(年、月、日);
long todayMI=new java.util.Date().getTime();
long calMI=cal.getTimeInMillis();
长米尔迪夫=卡尔米-今天米;
if(millDiff<0){
返回=0;
}否则{
天数=millDiff/1000/60/60;
返回=(int)Math.ceil(天/24f);
}
回归;
}
}
尝试以下代码:
基本上,在调用setText()之前,必须将int值转换为字符串
公共类MyFirstActivity扩展活动{
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView剩余天数=(TextView)findViewById(R.id.days\u int\u剩余天数);
int resultat=计算结果(2012,9,29);
剩余天数.setText(Integer.toString(resultat));
}
私有整数计算结果(整数年、整数月、整数日){
长天数=0L;
int=0;
java.util.Calendar cal=新java.util.Gregorianalendar(年、月、日);
long todayMI=new java.util.Date().getTime();
long calMI=cal.getTimeInMillis();
长米尔迪夫=卡尔米-今天米;
if(millDiff<0){
返回=0;
}否则{
天数=millDiff/1000/60/60;
返回=(int)Math.ceil(天/24f);
}
回归;
}
}
他正在更新UI线程上的TextView-调用方法不会更改正在运行的线程。(在您更改响应后,此注释不再有效)他正在更新UI线程上的TextView-调用方法不会更改正在运行的线程。(更改回复后,此评论不再有效)