だから私はこれを2日間続けましたが、まだうまくいきません。実行可能な asynctask を実装するソリューションを試しましたが、私のコードではうまくいかないようです。実装の仕方が悪かったのかな…
とにかく、私は次のコードを書いています。このアクティビティを作成するときに、「読み込み中」というテキストを含む進行状況ダイアログを表示したいと考えています。問題は、別のスレッドから GUI 要素を更新できないことです。それが私が立ち往生しているところです。あなたが私を助けてくれることを願っています!
PS: ProgressDialog が必要な理由は、行が
ArrayList<String> genres = MysqlHandler.getAllGenres();
読み込みにかなり時間がかかる場合があります。また、同じことを行う必要がある他のアクティビティがいくつかあり、ロードに最大5秒かかる場合があります。
public class GenreActivity extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_genre);
try {
ArrayList<String> genres = MysqlHandler.getAllGenres();
LinearLayout layout = (LinearLayout) findViewById(R.id.AllGenreLayout);
for(int i = 0; i < genres.size(); i++)
{
Button myButton = new Button(this);
myButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.yellow_button));
myButton.setTextAppearance(this, R.style.ButtonText);
myButton.setText(genres.get(i));
myButton.setOnClickListener(this);
layout.addView(myButton);
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}