CountDownTimer в изскачащ прозорец

Оке, така че актуализирах до това:

final AlertDialog.Builder popup_timer = new AlertDialog.Builder(ScoreNewGame.this);
popup_timer.setTitle("Timer:\t90 sec between games");
    CountDownTimer gameTimer = new CountDownTimer(9000, 1000) 
    {
        @Override
        public void onTick(long time_remaining) 
        {
            popup_timer.setMessage("Time remaining:\t" + time_remaining);
        }
        @Override
        public void onFinish() 
        {
        }
    };
    gameTimer.start();
    popup_timer.show();

Но сега получавам следната грешка-

Failure getting entry for 0x010802c9 (t=7 e=713) in package 0 (error -75)

Потърсих малко, но не мога да намеря никакво решение. Освен това 0x010802c9 не съответства на нищо в R.java. Приложението обаче не се срива, изскачащият прозорец просто не показва таймера за обратно отброяване, както искам


person Code Vader    schedule 09.05.2014    source източник
comment
Можете ли да публикувате регистър на сривовете?   -  person Jens Zalzala    schedule 10.05.2014


Отговори (1)


Бих предложил вместо това да създадете диалогов фрагмент. В този момент можете да боравите с таймера за обратно отброяване във фрагмента, както желаете.

Ето пример за фрагмент от диалогов прозорец:

public class CountDownDialog extends DialogFragment {

private TextView mCountdownView;

public CountDownDialog(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_countdowntimer_dialog, container);
    mCountdownView = (TextView) view.findViewById(R.id.countdownTimer);
    return view;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    CountDownTimer gameTimer = new CountDownTimer(10000, 1000) {
        @Override
        public void onTick(long l) {
            mCountdownView.setText(""+((int)Math.round(l/1000.0)-1));
        }

        @Override
        public void onFinish() {
            dismiss();
        }
    };
    gameTimer.start();
}
}

и ето как бихте го нарекли

    CountDownDialog countDownDialog = new CountDownDialog();
    countDownDialog.show(getSupportFragmentManager(), "fragment_countdownTimer");

Използвах доста просто оформление за фрагмента, за да го тествам:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Countdown:"
        android:id="@+id/countdownTitle"
        android:layout_marginLeft="@dimen/activity_horizontal_margin" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="9"
        android:id="@+id/countdownTimer"
        android:layout_marginLeft="8dp" />
</LinearLayout>
person Jens Zalzala    schedule 09.05.2014
comment
Не съм сигурен как да направя това и съм доста нов в Android. Въпреки това актуализирах кода си, моля, погледнете. Благодаря - person Code Vader; 11.05.2014
comment
Здравей, съжалявам, отсъствах за известно време. Работи като чар, благодаря ви много! - person Code Vader; 14.05.2014
comment
Благодаря ти приятелю. Всичко, което трябва да знам е, че извикването на вътрешен клас трябва да се извика вътре в метода onActivityCreated Клас hastebin.com/ohepitazux.avrasm xml. hastebin.com/izidoxuneq.xml - person Sam; 18.07.2016