textview - 您可以将倒计时器放入片段中吗?

标签 textview layout-inflater countdowntimer

我是 Android 应用程序开发新手。我做得还不错,直到我决定添加一个显示倒计时器的片段。我查看了 Stackoverflow,但没有一个解决方案适合我的场景。 以下是我遇到的问题:

1.当应用程序运行时,片段不会显示请求的 Textview [R.id.Time_view] 中的任何文本;(我认为问题在于我如何返回片段 View ,我使用了layoutinflater而不是setcontentview,我应该这样做吗?)

2.代码无法运行导致设备崩溃; (我相信我搞砸了下面的类和方法)

import android.app.Fragment;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class Timer_java extends Fragment{

/*Can inflating the Fragment layout, 
 instead of using setcontentview, cause these problems?*/

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
     Bundle savedInstance){

    View v;
    v = inflater.inflate(R.layout.timer_fragment, container, false);
return v;
}

@Override
        public void onStart(){
    TimerActivity counter = new TimerActivity(30000,1000);
    counter.start();

}
TextView Time_view = (TextView)getView() .findViewById(R.id.Time_view) ;
    TextView done;

    public class TimerActivity extends CountDownTimer {
        public TimerActivity (long startTime, long interval) {
           super(startTime, interval);
        }

         @Override
        public void onTick(long millisUntilFinished) {

            Time_view.setText("Time left:" + millisUntilFinished / 1000);
         }

        @Override
            public void onFinish() {
                done.setText("Done");

    }
  }
}

XML 布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="#ffdcddd8"
android:gravity="center">
<TextView
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:text="@string/timer"
    android:gravity="center"
    android:textStyle="bold"
    android:textSize="16sp"
    android:id="@+id/Time_view"/>

<TextView
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:text="@string/score"
    android:textStyle="bold"
    android:textSize="16sp"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_marginRight="85dp"
    android:layout_marginEnd="85dp" />


 </RelativeLayout>

最佳答案

onStart calls before onCreateView. your view is not yet initialized.

这意味着您的TextView也没有初始化。它导致崩溃。您的 TextView 为空,并且您正在将文本设置为空 View 。

关于textview - 您可以将倒计时器放入片段中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30688125/

相关文章:

android - 选择选项后如何关闭我的 inflater 菜单

java - 调用 onResume() 后刷新 onCreate()

android - Android Studio:启动倒数计时器时应用崩溃

javascript - jquery 倒数计时器 NaN

java - 如何隐藏 View 后面的 View

android - 在 LinearLayout 中对齐 TextView 和 ImageView

android - 如何创建此 View (布局)?

android:animateLayoutChanges 在更改 TextView 的 maxLines 时在 RecyclerView 中不起作用

java - 将按钮/编辑文本添加到相对布局(膨胀)

android - Robolectric 为具有换行内容高度的 View 返回 0 高度