【发布时间】:2020-01-01 05:17:52
【问题描述】:
首先,我尝试了所有建议,但没有任何效果,这就是我再次询问的原因。
背景:我正在使用导航抽屉在多个片段(主页、历史记录、教程等)之间切换。其中一个 Fragment (Home Fragment) 包含使用 Fragments (Level 1, Level 2, Level 3) 制作的可滑动 viewPager。现在,我在单击按钮时从这些片段(例如级别 1)启动 EditTextActivity 活动,并将结果返回到片段(级别 1)。
这里发生了一些奇怪的事情——
我使用自定义按钮保存来自 EditTextActivity 的数据 - Data=null resultCode = 0 但我使用 onBackPressed() 它正确返回数据。为什么?
为什么自定义按钮不起作用?
/*---EditTextActivity----*/
/* NOT WORKING */
public void saveData(View view) {
Intent intent = new Intent();
intent.putExtra("title", titleText);
intent.putExtra("description", descriptionText);
intent.putExtra("imgSrc", imgSrc);
setResult(RESULT_OK, intent);
finish();
}
/* WORKING PROPERLY */
@Override
public void onBackPressed() {
Intent intent = new Intent();
intent.putExtra("title", titleText);
intent.putExtra("description", descriptionText);
intent.putExtra("imgSrc", imgSrc);
setResult(RESULT_OK, intent);
finish();
super.onBackPressed();
}
/*--- Code inside Fragment---- */
gridview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Log.d("Critical", "Item has been clicked");
TextView title = view.findViewById(R.id.cardtitle);
TextView description = view.findViewById(R.id.carddescription);
Intent intent = new Intent(getActivity(), EditTileActivity.class);
intent.putExtra("title",title.getText());
intent.putExtra("description",description.getText());
startActivityForResult(intent, REQUEST_CODE);
return true;
}
});
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d("RESULTS REQUEST CODE ", requestCode + "\t RESULT CODE:"+ resultCode);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
String rtitle = data.getStringExtra("title");
String rdescription = data.getStringExtra("description");
String rimgSrc = data.getStringExtra("imgSrc");
Log.d("RESULTS",rtitle+"test");
}
}
【问题讨论】:
-
你可能会在你的第一个片段上获得意图,即主页片段。
标签: android android-fragments onactivityresult