A_Activity内に3つのフラグメントが追加されました。これらはfragment_1あり、fragment_2、私はここで非同期タスクから戻るときに、アクティビティにフラグメントが添付されない
async_class非同期クラスを呼び出していますfragment_1から
をfragment_3は私Fragment_1です:
非同期クラスでpublic class Fragment_1 extends Fragment {
ListView listView;
private TrainingGetData mTrainingGetData = null;
Context mContext;
public Fragment_1(){
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_1, container, false);
mTrainingGetData = new TrainingGetData(getContext());
mTrainingGetData.execute((String) null);
return view;
}
public void setTitle(Context context, ArrayList<String> ids, ArrayList<String> titles, final ArrayList<String> urls){
final Activity activity=(Activity) context;
final ArrayAdapter adapter=new ArrayAdapter(context, android.R.layout.simple_list_item_1, titles);
listView=(ListView) ((Activity) context).findViewById(R.id.listView_1);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent myIntent = new Intent(activity, AnotherActivity.class);
myIntent.putExtra("url", urls.get(position));
startActivity(myIntent);
});
}
}
私はバックグラウンドで、ポストにいくつかのタスクを実行しますexecudeは、私はこれらのコード
public class TrainingGetData extends AsyncTask<String, String, String> {
Fragment_1 fragment_1=new Fragment_1();
public TrainingGetData(Context context){
mContext=context;
}
@Override
protected String doInBackground(String... params) {
try {
//do the processing
}
catch (JSONException e) {
e.printStackTrace();
return "JSON Data Parse Error";
}
catch (Exception e){
e.printStackTrace();
return "Unknown Error: Insert/Update Failed";
}
return null;
}
@Override
protected void onPostExecute(String message) {
if(success == 0 && message.equals("No files found")){
Toast.makeText(mContext, "Sorry No Data Found", Toast.LENGTH_SHORT).show();
}
if(success==1) {
//do the processing
fragment_1.setTitle(mContext, ids, titles, urls);
}
}
}
を追加している。しかし、私はfragment_1のsetTitleメソッドに戻り、任意のリスト項目をクリックしたときには、fragment_1がないことを示していますアクティビティに関連付けられます。
何が問題になりましたか? どうすればこの問題を解決できますか?
おかげ
それを使用されていません。私は、また、パラメータとして – supertramp
@supertrampを渡す必要があります:私は、オーバーレイを使用してこれを行ったインターフェイス –
を使用してカスタムイベントリスナーを作成するには、フラグメント2とフラグメント_3からTrainingGetData()助けをありがとう – supertramp