我知道onBackpressed()是一个活动中的方法但是,我想在片段中使用这些功能,这样当按下后退按钮时,它会通过Intent重定向到另一个活动.这有什么解决方案吗?
public class News_Events_fragment extends Fragment {ProgressDialog pd;ListVIEw lv1;SharedPreferences sharedPreferences = null;int NotiCount;TextVIEw txt_Title, txt_msg, textVIEw;Context context;Intent intent ;ArrayList<SlIDerMsgTitleModel> CurrentOfficersPastList;NewsActivityAdapter pastAdapter;@OverrIDepublic VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container, Bundle savedInstanceState) { context = (Context) getActivity(); VIEw rootVIEw = inflater.inflate(R.layout.activity_news, container, false); new AsyncTask<VoID, VoID, ArrayList<SlIDerMsgTitleModel>>() { protected voID onPreExecute() { pd = new ProgressDialog(getActivity()); pd.setCancelable(true); pd.setTitle("UPOA"); pd.setMessage("Please wait,loading the data..."); pd.show(); } @OverrIDe protected ArrayList<SlIDerMsgTitleModel> doInBackground( VoID... params) { System.out.println("In Background"); CurrentOfficersPastList = new ArrayList<SlIDerMsgTitleModel>(); // display vIEw for selected nav drawer item Parsequery<ParSEObject> query = Parsequery.getquery("message"); query.whereEqualTo("featured_status", true); // query.whereEqualTo("push_status", true); query.orderByDescending("updatedAt"); query.selectKeys(Arrays.asList("Title")); query.selectKeys(Arrays.asList("message")); try { query.setCachePolicy(Parsequery.CachePolicy.NETWORK_ELSE_CACHE); List<ParSEObject> results = query.find(); for (int i = 0; i < results.size(); i++) { ParSEObject object = results.get(i); CurrentOfficersPastList.add(new SlIDerMsgTitleModel( object.getString("Title"), object .getString("message"))); System.out.println("Title is==" + object.getString("Title") + "&& message is" + object.getString("message") + "size is" + CurrentOfficersPastList.size()); } } catch (Exception e) { e.getMessage(); } pd.dismiss(); return CurrentOfficersPastList; } @SuppressWarnings("unchecked") @OverrIDe protected voID onPostExecute(ArrayList<SlIDerMsgTitleModel> value) { pd.dismiss(); /*Intent ent = new Intent(getActivity(), NewsActivity.class); ent.putExtra("NEWSList", (ArrayList<SlIDerMsgTitleModel>) value); startActivity(ent); System.out.println("Value is" + value.size());*/ CurrentOfficersPastList = new ArrayList<SlIDerMsgTitleModel>(); CurrentOfficersPastList = value; lv1 = (ListVIEw) getActivity().findVIEwByID(R.ID.List_Title); pastAdapter = new NewsActivityAdapter(getActivity(), R.layout.activity_news_txt, CurrentOfficersPastList); lv1.setAdapter(pastAdapter); } }.execute(); return rootVIEw;}public voID onBackpressed() { // Todo auto-generated method stub //super.onBackpressed(); //Toast.makeText(getApplicationContext(), "click",2000).show(); String cameback="CameBack"; intent = new Intent(getActivity(),HomeActivity.class); intent.putExtra("Comingback", cameback); startActivity(intent);} }
解决方法:
覆盖onKeyDown而不是onBackpressed.不必要 .但这对我有用
public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_BACK: String cameback="CameBack"; intent = new Intent(getActivity(),HomeActivity.class); intent.putExtra("Comingback", cameback); startActivity(intent); return true } return false;}
总结 以上是内存溢出为你收集整理的android – 如何在片段中实现onBackPressed()&intents?全部内容,希望文章能够帮你解决android – 如何在片段中实现onBackPressed()&intents?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)