Диалог хода при запуске нового действия

1

Мое приложение настраивает список имен футбольной команды, а при нажатии текстового вида соответствующий класс вызывается в методе намерения.

Классы, которые называются загрузкой файла макета xml, который составляет около 200 КБ. Я хотел бы реализовать значок прогресса/загрузки, пока файл xml загружается в фоновом режиме.

Я просмотрел этот сайт и прочитал об ASynchTask, но я не знаю, какой код мне нужно написать в методе doInBackground().

Вот мой класс:

У меня есть массив текстовых просмотров, которые инициализируются, и массив имен классов, назначенных каждому текстуру при щелчке.

Кто-нибудь может мне помочь? Я нооби.

Как альтернатива, есть ли способ загрузить все эти классы в фоновом режиме, когда пользователь сначала нажимает на приложение?

public class Transfers extends Activity {

public final int[] teams = { R.id.ars, R.id.ast, R.id.bir, R.id.bla,
        R.id.blp, R.id.bol, R.id.che, R.id.eve, R.id.ful, R.id.hul,
        R.id.lee, R.id.liv, R.id.mid, R.id.mnc, R.id.mnu, R.id.nor,
        R.id.nwu, R.id.por, R.id.qpr, R.id.sto, R.id.sun, R.id.swa,
        R.id.tot, R.id.wes, R.id.wig, R.id.wol };

public final String[] teamnames = { "ars", "ast", "bir", "bla", "blp",
        "bol", "che", "eve", "ful", "hul", "lee", "liv", "mid", "mnc",
        "mnu", "nor", "nwu", "por", "qpr", "sto", "sun", "swa", "tot",
        "wes", "wig", "wol" };

TextView tv;
Class classname;
String prefix = "ttj.android.ft.teams.";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.m_transfers);

    for (int i = 0; i < teams.length; i++) {
        final int j = i;
        tv = (TextView) findViewById(teams[i]);
        tv.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                try {
                    classname = Class.forName(prefix + teamnames[j]);
                    Intent open = new Intent(Transfers.this, classname);
                    startActivity(open);
                } catch (ClassNotFoundException e) {
                    e.printStackTrace();
                }
            }
        });
    }
    ;
}
  • 0
    Может быть, мой ответ поможет вам :)
  • 0
    @Lucifer Люцифер Спасибо. Я посмотрел на ваше решение. Как мне внедрить этот код в мой класс? Любая помощь будет оценена. Также, пожалуйста, переместите ваш ответ на ответы, чтобы я мог похвалить ваши знания! :-)
Показать ещё 4 комментария
Теги:
progress-bar
progressdialog
classloader

1 ответ

2

Вы должны забыли индикатор выполнения на мгновение и переосмыслить использование массива TextView.

Я не знаю, как вы их используете на экране, но вы должны переключиться на использование какого-то адаптера (например, ListView, GridView и т.д.), А затем загрузить адаптер со всеми вашими командами. Это значительно уменьшит общее количество фактических объектов View, которые вы создаете, что сократит время загрузки.

  • 0
    Благодарю. Я потратил слишком много времени на этот код, чтобы поиграть с логикой! Мои навыки Java в основном, по меньшей мере. Попытка решить, как реализовать решение, предложенное Люцифером

Ещё вопросы

Сообщество Overcoder
Наверх
Меню