私はAsyncTaskをメインアクティビティに実行しており、その結果は文字列ベクトルです。このベクトルを使用して、フラグメント内のリストビューを変更したいと考えています。私はインターフェイス(Asyncresponce)を使用してベクトルをpublic void(processFinish)で取得し、Asyncresponceをフラグメントで実装し、それを使用してArrayアダプタをクリアして使用しますが、public voidが機能しません。稼働していますが、デバイスモニタに表示されません。公開無効実装はフラグメント内では機能しません
私は何が問題なのか分かりません。 主な活動とasynctaskの重要部品:記事に
AsyncResponse myasync = new AsyncResponse() {
public void processFinish(String output[]) {
}
};
MainActivity.FetchWeatherTask weatherTask = new MainActivity.FetchWeatherTask(myasync);
//MainActivity.FetchWeatherTask weatherTask = new MainActivity.FetchWeatherTask();
weatherTask.execute("232931","82da4ddd2e8380be6dea06b177926b2d");
私はprocessFinish上の文字列ベクトルを渡す場所を実行します。
Log.v(LOG_TAG, "on post execute:+: "+ resultStrs[1]);
delegate.processFinish(resultStrs);
とフラグメント:あなたが渡す必要があります
public class MainActivityFragment extends Fragment
implements MainActivity.AsyncResponse {
public String[] weatherdata = new String[5];
public ArrayAdapter<String> mForecastAdapter;
public final String LOG_TAG_fragmet =MainActivityFragment.class.getSimpleName();
@Override
public void processFinish(String output[]) {
if (output!= null){
Log.v(LOG_TAG_fragmet, "this is from fragment="+ output[1]);
mForecastAdapter.clear();
}
}
はい、これは私が入れしかし、作品をそれはOncreateviewにあります。どうもありがとう – saeed