我想获得textview信息片段文本视图。
主营业务:
public final DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, dayOfMonth);
String format = new SimpleDateFormat("dd/MM/yyyy").format(c.getTime());
datePicker1.setText(format);
Tab1_fragment.getInstance().setText(Integer.toString(difference(c.getTimeInMillis())));
}
};
片段
public class Tab1_fragment extends Fragment {
TextView betweendate;
public void setText (String text){
TextView betweendate = (TextView) this.getView().findViewById(R.id.betweenDate);
betweendate.setText(text);
}
我做得对吗?日志的结果是:
试图在空对象引用
上调用虚拟方法'android.view.View android.view.View.findViewById(int)‘
发布于 2021-07-04 04:21:15
首先定义所有视图(文本视图和.)在onCreateView (在片段中)和它们的初始视图中,下面是示例:
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_compare_result, container, false);
initView(view);
return view;
}
private void initView(View view) {
txtProductName = view.findViewById(R.id.txt_product_name);
txtProductc = view.findViewById(R.id.txt_product_c);
txtProductn = view.findViewById(R.id.txt_product_n);
}
要在活动中发送数据到碎片,您可以使用挛缩片段来获取数据或意图。
发布于 2021-07-04 04:57:24
初学者的简单实现如下所示:
您可以从片段中访问活动数据:
Activity:
public class YourActivity extends Activity {
private String myString = "hello";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
...
}
public String getDataLocal() {
return myString;
}
}
Fragment:
public class MyFragment extends Fragment {
TextView tv;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {=
View view = inflater.inflate(R.layout.frgament_layout_view, container, false);
tv = (TextView) view.findViewById(R.id.yout_text_view);
return view;
}
@Override
public View onViewCreated(..) {
YourActivity activity = (YourActivity) getActivity();
String myActivityData = activity.getDataLocal();
tv.setText(myActivityData);
return view;
}
}
希望这给您提供了如何从活动发送数据到片段的基本概念。
第二个解决方案:来自YourActivity
var fragment = supportFragmentManager.findFragmentById(YOUR_FRAG_ID) as MyFragment
fragment.updateMyData(YOUR_NEW_DATA);
尝试第二个解决方案,它应该可以工作。:)
发布于 2021-08-31 13:02:57
看起来您需要使用Bundle,假设我的片段名为ResultFragment,例如,我想传递一个日期。
String date = "10/12/2000";
Bundle bundle = new Bundle();
bundle.putString("date", date);
ResultFragment resultFragment = new ResultFragment();
resultFragment.setArguments(bundle);
resultFragment.show(this.getSupportFragmentManager(), "result fragment");
要获取片段中的数据,请使用下面的代码。
Bundle bundle = this.getArguments();
if (bundle != null) {
String date = bundle.getString("date", null);
}
https://stackoverflow.com/questions/68244521
复制