Data pass from ProjectDetailActivity to ProjectDetailFragment ,I already check that data can pass to fragment by using Toast to show data as you can see in the code , but the problem is I cant set text in Textview by using data from bundle . If you see some error in this code please let me know . Thank a lot.
ProjectDetailActivity 类
private String project_key,project_name,project_priority,project_category,
project_start_date ,project_end_date,project_description;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_project_detail);
Intent intent = getIntent();
project_key = intent.getStringExtra("project_key");
project_name = intent.getStringExtra("project_name");
project_category = intent.getStringExtra("project_category");
project_priority = intent.getStringExtra("project_priority");
Bundle bundle = new Bundle();
bundle.putString("project_key",project_key);
bundle.putString("project_name",project_name);
bundle.putString("project_category",project_category);
bundle.putString("project_priority",project_priority);
ProjectDetailFragment project_detail_fragment =new ProjectDetailFragment();
project_detail_fragment.setArguments(bundle);
getSupportFragmentManager().beginTransaction()
.replace(R.id.project_detail_fragment,project_detail_fragment)
.commit();
}
}
ProjectDetailFragment 类
public class ProjectDetailFragment extends Fragment {
private View root;
private String project_key,project_name,project_priority,project_category,
private TextView project_name_textView , project_priority_textView ,
project_category_textView ;
private Context mContext;
public ProjectDetailFragment() { }
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
Bundle bundle = getArguments();
project_key = bundle.getString("project_key");
project_name = bundle.getString("project_name");
project_priority = bundle.getString("project_category");
project_category = bundle.getString("project_priority");
}
}
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle
savedInstanceState) {
root = inflater.inflate(R.layout.fragment_project_detail, container,false);
project_name_textView = root.findViewById(R.id.project_name_textView);
project_priority_textView = root.findViewById(R.id.priority_textView);
project_category_textView = root.findViewById(R.id.category_textView);
project_name_textView.setText(project_name);
project_priority_textView.setText(project_priority);
project_category_textView.setText(project_category);
Toast.makeText(mContext,"TASK ACTIVITY\n"+
project_key+"\n"+project_name+"\n"+project_category+"\n"
+project_priority+"\n",Toast.LENGTH_SHORT).show();
return root;
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
mContext=context;
}
}
最佳答案
如果Toast向您显示数据,则意味着接收数据没有问题,并且我在将数据设置为 TextView 时没有看到错误,但请检查您的xml,检查文本颜色是否与背景颜色匹配,例如text-view背景是白色的,文字颜色也是白色的,显然你看不到文字。 或者如果没有,你可以这样尝试::::project_name_textView.setText(String.value of(project_name));
关于java - 我无法使用从 Activity 传递到 fragment 的 bundle 字符串数据在 textView 中设置文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61424558/