我正在處理我的第一個應用程序,並陷入了某個問題。 在我的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修改視圖也沒有提供任何內容。只有在填充列表時,纔會顯示所有視圖更改。
如何在構造函數調用ListofAudioFiles之前實現onClick(...)中的視圖更改,而不會完全改變我的程序結構?
這可能是因爲你的UI線程上運行的長時間運行法/請確保您使用的AsyncTask或推你的操作工人的另一種方式線。 – vkislicins
您可能會覺得這很有用:https://www.youtube.com/watch?v=0Z5MZ0jL2BM&list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE&index=2 – vkislicins