独自のデータを含む 2 つの ListViews があります。
ユーザーが最初の項目のいずれかのボタンをクリックすると、ListView
データの変更が発生し、2 番目の項目にListView
通知する必要があります。しかし、私はこれを機能させることができないようです。簡略化された関連コードの下:
これが最初の ListFragment です。AsyncTask 内では、最初のカスタム ListAdapter が during で設定さsetListAdapter()
れonPostExecute()
ます。
public class FragmentAListSupport extends SherlockListFragment {
String url = "omitted";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AsyncTask<String, Integer, String[]> asynctask =
new DownloadFilesTask(this).execute(url);
}
}
これは 2 番目の ListFragment です。AsyncTask 内で、2 番目のカスタム ListAdapter が during で設定さsetListAdapter()
れonPostExecute()
ます。
public class FragmentBListSupport extends SherlockListFragment {
String url = "omitted";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AsyncTask<String, Integer, String[]> asynctask =
new DownloadDataTask(this).execute(url);
}
}
最初の ListFragment (A) で使用されるカスタム アダプター内には、onButtonPressed ハンドラーがあります。
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
//code omitted
viewHolder.button
.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View buttonview) {
//code omitted that changes some local data
//I need to notify the other ListFragment (B) here that it should update
}
{
}
今、私の質問のために...
最初のアダプター (A) 内から notifyDataSetChanged() を正しく使用して、ListView を更新する必要があることを 2 番目のアダプター (B) に通知するにはどうすればよいですか? どちらも AsyncTask 内で初期化されているため、最初のアダプター内から 2 番目のアダプターへの正しい参照を取得する方法について混乱しています。
どんな助けでもいいです!