AsyncTask を使用して TextView のテキストを更新したいと考えています。
私は2つのTextViewがあり、1つはImageViewであるというリストビューを持っています
ユーザーが ImageView ボタンを押すと、サーバー側からソングが再生されます。だから私は AsyncTask タスクにコードを入れました
これは、ImageView の on Click イベントを呼び出しているカスタム アダプターです。以下は、このような私のコード サンプルです。
public View getView(final int position, View convertView,
ViewGroup parent) {
holder.imgPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
およびonclickイベントは、asynctaskでtextviewを渡しています。これは、インターネットからデータを取得した後に変更したいので、以下が私のコードです
new MetadataTask2().execute(holder.txtMetadata);
今AsyncTaskのコードは以下です
class MetadataTask2 extends AsyncTask<TextView, Void, IcyStreamMeta> {
TextView txtView;
@Override
protected IcyStreamMeta doInBackground(
TextView... arg0) {
//SOME OPERATION
txtView = arg0[0];
return streamMeta;
}
@Override
protected void onPostExecute(IcyStreamMeta result) {
txtView.setText("Hiiiiiiii");
}
@Override
protected void onPreExecute() {
super.onPreExecute();
try {
PD = ProgressDialog.show(CompaniesList.this, "Tuning...",
"Please Wait...");
} catch (Exception e) {
e.printStackTrace();
}
}
}
ここで、textView.setText("Hiii") を使用するとテキストが更新されることがわかりますが、ListView または Adapter を更新する必要があるため、Listview には反映されませんが、その方法がわからないため、テキストを表示できますリストビューはどんな体でも私を助けることができますか
リストビューを更新するために以下のコードを使用しましたが、まだ何もしません
adapter.notifyDataSetChanged();
mainListView.setAdapter(adapter);
mainListView.invalidate();