2015-06-06 3 views
3

Я новичок в разработке приложений для Android. Я делал все в порядке, пока не решил добавить фрагмент, на котором будет отображаться Countdowntimer. Я смотрел Stackoverflow, но ни один из решений не работал для моего сценария. Вот проблемы, которые возникают у меня:Можете ли вы поместить Countdowntimer во Фрагмент?

1. Когда приложение запустится, фрагмент не отобразится. Любой текст из запрошенного Textview [R.id.Time_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> 
+0

Можете ли вы добавить свой макет timer_fragment xml? – Squirrelkiller

ответ

0

OnStart вызовы перед тем onCreateView. ваше представление еще не инициализировано.

Это означает, что ваш TextView также не является initiailzed. и это вызывает аварии. ваши TextViews являются нулевыми, а вы - , установив текст в null. Просмотров.

Смежные вопросы