私は最初のアプリケーションで作業していて、ある時点で立ち往生しています。 私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コンストラクタを呼び出す前にビューをいくつかの待機画面に変更することはできません。また、作業を無効にすることも作業を無効にすることも、新しいレイアウトでsetContentViewを実行することもできません。 setTextでビューを変更しても何も表示されません。リストにデータが入力されている場合にのみ、すべてのビューの変更が表示されます。
コンストラクタがListofAudioFilesを呼び出す前に、自分のプログラム構造を完全に変更することなく、どのようにしてonClick(...)でビューの変更を行うことができますか?
/必ずAsyncTaskや作業者にあなたの操作をプッシュする別の方法を使用してください糸。 – vkislicins
これは便利です:https://www.youtube.com/watch?v=0Z5MZ0jL2BM&list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE&index=2 – vkislicins