Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java setText不向TextView显示值_Java_Android_Eclipse - Fatal编程技术网

Java setText不向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. */

让我先说一句,我是Android编程新手。我一直在尽我应有的努力进行研究,但毫无结果。我有下面的源代码,在返回返回值时遇到问题

我在eclipse上列出了代码,它不会触发任何错误。但是当我构建下面的代码时,它返回一个错误。在debug视图中检查了这些值之后,我可以看到没有绑定到TextView的正确值

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-调用方法不会更改正在运行的线程。(更改回复后,此评论不再有效)