本文介绍了如何实现onBack pressed()及在片段意图?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我知道onBack pressed()是活性的方法,但是,我想用在片段的功能,例如,当后退按钮是pressed,它就会通过意向重定向到另一个活动。有没有什么解决办法?
公共类News_Events_fragment扩展片段{
ProgressDialog PD;
ListView控件LV1;
共享preferences共享preferences = NULL;
INT NotiCount;
TextView的txt_title,txt_msg,TextView的;
上下文语境;
意向意图;
ArrayList的< SliderMsgTitleModel> CurrentOfficersPastList;
NewsActivityAdapter pastAdapter;
@覆盖
公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,
捆绑savedInstanceState){
上下文=(上下文)getActivity();
查看rootView = inflater.inflate(R.layout.activity_news,集装箱,假);
新的AsyncTask<虚空,虚空,ArrayList的< SliderMsgTitleModel>>(){
在preExecute保护无效(){
PD =新ProgressDialog(getActivity());
pd.setCancelable(真正的);
pd.setTitle(UPOA);
pd.setMessage(请稍候,装载数据......);
pd.show();
}
@覆盖
受保护的ArrayList< SliderMsgTitleModel> doInBackground(
虚空...... PARAMS){
的System.out.println(背景);
CurrentOfficersPastList =新的ArrayList< SliderMsgTitleModel>();
对选定的导航抽屉的项目//显示视图
ParseQuery<的parseObject>查询= ParseQuery.getQuery(信息);
query.whereEqualTo(featured_status,真正的);
// query.whereEqualTo(push_status,真正的);
query.orderByDescending(updatedAt);
query.selectKeys(Arrays.asList(标题));
query.selectKeys(Arrays.asList(信息));
尝试 {
query.setCachePolicy(ParseQuery.CachePolicy.NETWORK_ELSE_CACHE);
名单<的parseObject>结果= query.find();
的for(int i = 0; I< results.size();我++){
的parseObject对象= results.get(ⅰ);
CurrentOfficersPastList.add(新SliderMsgTitleModel(
object.getString(标题),对象
.getString(消息)));
的System.out.println(标题==
+ object.getString(标题)+&放大器;&安培;消息
+ object.getString(信息)+大小
+ CurrentOfficersPastList.size());
}
}赶上(例外五){
e.getMessage();
}
pd.dismiss();
返回CurrentOfficersPastList;
}
@燮pressWarnings(未登记)
@覆盖
保护无效onPostExecute(ArrayList中< SliderMsgTitleModel>值){
pd.dismiss();
/ *意图ENT =新的意向书(getActivity(),NewsActivity.class);
ent.putExtra(新闻列表(ArrayList中< SliderMsgTitleModel>)值);
startActivity(ENT);
的System.out.println(价值是+ value.size()); * /
CurrentOfficersPastList =新的ArrayList< SliderMsgTitleModel>();
CurrentOfficersPastList =价值;
LV1 =(ListView控件)getActivity()findViewById(R.id.list_title)。
pastAdapter =新NewsActivityAdapter(getActivity(),R.layout.activity_news_txt,CurrentOfficersPastList);
lv1.setAdapter(pastAdapter);
}
}。执行();
返回rootView;
}
公共无效onBack pressed(){
// TODO自动生成方法存根
//super.onBack$p$pssed();
//Toast.makeText(getApplicationContext(),咔嚓,2000年).show();
字符串cameback =CameBack;
意图=新的意图(getActivity(),HomeActivity.class);
intent.putExtra(Comingback,cameback);
startActivity(意向);
}
}
解决方案
覆盖onBack pressed中的onkeydown代替。不必要 。但是,这对我的作品
公共布尔的onkeydown(INT键code,KeyEvent的事件){
开关(钥匙code){
案例KeyEvent.KEY code_BACK:
字符串cameback =CameBack;
意图=新的意图(getActivity(),HomeActivity.class);
intent.putExtra(Comingback,cameback);
startActivity(意向);
返回true
}
返回false;
}
I know that onBackPressed() is a method in activity but, I want to use the functionality in fragments such that when back button is pressed, it gets redirected to another activity via Intent. Is there any solution to this ?
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;
@Override
public 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);
}
}
解决方案
Override onKeyDown instead of onBackPressed. Not necessarily . But this works for me
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;
}
这篇关于如何实现onBack pressed()及在片段意图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!