Я работаю над своим первым приложением и застрял в какой-то момент. В моей MainActivity есть OnClick метод, который связан к кнопке в главном файле макета:Изменить вид на ожидающий экран
<Button
android:id="@+id/button"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/IncludeAlbum"
android:text="@string/scan"
android:onClick="onClick"
/>
Это OnClick:
public void onClick(View view){
view.setVisibility(view.GONE);
View v1 = (View) findViewById(id.Welcomemessage);
v1.setVisibility(v1.GONE);
//
// ... many more visibility changes
//
loaf = new ListOfAudioFiles(); // TAKES TIME
ListView lv = (ListView) findViewById(id.listView1);
adapter = new CustomAdapter(this, allComparisons); //loaf.songinfos
lv.setAdapter(adapter);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adpterView, View view, int position,
long id) {
ListView lv = (ListView) findViewById(R.id.listView1);
long viewId = view.getId();
if (viewId == R.id.textView1) {
allComparisons.get(position).togglecb1();
adapter.notifyDataSetChanged();
} else {
allComparisons.get(position).togglecb2();
adapter.notifyDataSetChanged();
}
}
});
}
Не очень чистый, я знаю, но Я хотел бы сохранить структуру. Конструктор listofaudiofiles выполняет много времени.
Моя проблема заключается в том, что я не могу изменить представление на какой-либо экран ожидания перед вызовом конструктора listofaudiofiles, также не выполняет (post) работу недействительно и не устанавливает setContentView на новом макете. Изменение вида setText также ничего не дает. Только при заполнении списка отображаются все изменения вида.
Как я могу добиться изменений вида в onClick (...) перед вызовом конструктора ListofAudioFiles, не меняя полностью свою структуру программы?
Это, вероятно, потому, что вы используете свой затянувшийся-метод в потоке пользовательского интерфейса/Убедитесь, что вы используете AsyncTask или другой способ подталкивая операцию работника нить. – vkislicins
Возможно, вам это будет полезно: https://www.youtube.com/watch?v=0Z5MZ0jL2BM&list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE&index=2 – vkislicins