在自定义视图中保存传递的值,可以使用Bundle来实现。具体代码如下:
1.在Activity中将需要传递的值打包到Bundle中并用setArguments()方法设置给Fragment。
Bundle bundle = new Bundle(); bundle.putString("key", value); CustomViewFragment fragment = new CustomViewFragment(); fragment.setArguments(bundle);
2.在自定义视图中将打包过的数据解包并赋值:
public CustomView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); if (isInEditMode()) { return; } Bundle bundle = ((Activity)context).getIntent().getExtras(); String value = bundle.getString("key"); // Use the value here }
这样就可以解决Android Java自定义视图无法保留从活动传递的值的问题了。