【发布时间】:2019-10-10 09:59:23
【问题描述】:
从片段我打开一个活动然后我想从这个活动发送数据到那个片段。但是该数据未显示在片段上
这里是扩展片段类
public final class AddEditAlarmFragment extends Fragment {
private TimePicker mTimePicker;
private EditText mLabel,mPath;
private CheckBox mMon, mTues, mWed, mThurs, mFri, mSat, mSun;
public static AddEditAlarmFragment newInstance(Alarm alarm) {
Bundle args = new Bundle();
args.putParcelable(AddEditAlarmActivity.ALARM_EXTRA, alarm);
AddEditAlarmFragment fragment = new AddEditAlarmFragment();
fragment.setArguments(args);
return fragment;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.fragment_add_edit_alarm, container, false);
setHasOptionsMenu(true);
final Alarm alarm = getAlarm();
mTimePicker = (TimePicker) v.findViewById(R.id.edit_alarm_time_picker);
ViewUtils.setTimePickerTime(mTimePicker, alarm.getTime());
mLabel = (EditText) v.findViewById(R.id.edit_alarm_label);
mLabel.setText(alarm.getLabel());
mPath = (EditText) v.findViewById(R.id.edit_alarm_path);
// event to go PathActivity
mPath.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intend = new Intent(getActivity(), PathActivity.class);
startActivity(intend);
}
});
String strtext = getArguments().getString("edttext");
mLabel.setText(strtext);
setDayCheckboxes(alarm);
return v;
}
这里是扩展 AppCompatActivity 类
public class PathActivity extends AppCompatActivity {
private final static int READ_EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE = 13;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView( R.layout.path_activity);
int permissionCheck = ContextCompat.checkSelfPermission(this,
Manifest.permission.READ_EXTERNAL_STORAGE);
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
READ_EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE);
} else {
addFileChooserFragment();
}
}
private void addFileChooserFragment() {
FileChooser.Builder builder = new FileChooser.Builder(FileChooser.ChooserType.FILE_CHOOSER,
new FileChooser.ChooserListener() {
// Send back data to mPath(Edittext) of AddEditAlarmFragment class
@Override
public void onSelect(String path) {
File selected= new File(path);
Bundle bundle = new Bundle();
bundle.putString("edttext", selected.getParent().toString());
AddEditAlarmFragment fragobj = new AddEditAlarmFragment();
fragobj.setArguments(bundle);
finish();
}
});
try {
getSupportFragmentManager().beginTransaction()
.add(R.id.file_chooser_fragment_container_framelayout, builder.build())
.commit();
} catch (ExternalStorageNotAvailableException e) {
Toast.makeText(this, "There is no external storage available on this device.",
Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
}
这对我来说真的是一个挑战。我是 android studio 的新手。我正在寻找您的来信。谢谢
【问题讨论】:
标签: android android-fragments android-intent