【发布时间】:2017-05-06 10:29:34
【问题描述】:
log cat 和 toast 都没有显示片段 1 中的任何数据。我不想创建对初学者来说很难的界面。我遵循了link的第二个解决方案
请编辑我的代码。
// 主要片段代码:
public class FragmentOne extends Fragment {
public static final int PICKER = 1;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_one, container, false);
layout=(ViewGroup)rootView.findViewById(R.id.mainLayout);
layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getActivity().getSupportFragmentManager();
DFragment dialogFragment = new DFragment ();
dialogFragment.setTargetFragment(dialogFragment, PICKER);
dialogFragment.show(fm.beginTransaction(), "Sample Fragment");
}
});
return rootView;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case PICKER:
if (resultCode == Activity.RESULT_OK) {
Bundle bundle = data.getExtras();
String size = bundle.getString("size");
Log.i("PICKER", "Got year=" + size + ", yay!");
} else if (resultCode == Activity.RESULT_CANCELED) {
Toast.makeText(getActivity(), "user did not entered", Toast.LENGTH_SHORT).show();
}
break;}}
// Dialog Fragment Code is here :
public class DFragment extends DialogFragment implements View.OnClickListener{
Button small, medium, large, xlarge;
String size =null;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.dialog, container,
false);
small = (Button) rootView.findViewById(R.id.small);
small.setOnClickListener(this);
medium = (Button) rootView.findViewById(R.id.medium);
medium.setOnClickListener(this);
large = (Button) rootView.findViewById(R.id.large);
large.setOnClickListener(this);
xlarge = (Button) rootView.findViewById(R.id.xlarge);
xlarge.setOnClickListener(this);
getDialog().setTitle("DialogFragment Tutorial");
return rootView;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.small:
size = small.getText().toString();
dismiss();
break;
case R.id.medium:
size = medium.getText().toString();
dismiss();
break;
case R.id.large:
size = large.getText().toString();
dismiss();
break;
case R.id.xlarge:
size = xlarge.getText().toString();
dismiss();
break;
default:
break;
}
Intent i = new Intent();
i.putExtra("size", size);
getTargetFragment().onActivityResult(getTargetRequestCode(), Activity.RESULT_OK, i);
}
}
【问题讨论】:
标签: android fragment dialogfragment