数据从ProjectDetailActivity传递到ProjectDetailFragment,我已经检查了数据可以通过使用Toast来显示数据,如你在代码中看到的那样,但问题是我不能通过使用bundle的数据在Textview中设置文本。如果你看到这个代码中的一些错误,请告诉我。非常感谢。
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向你显示数据,这意味着在接收数据方面没有问题,而且我看不到在将数据设置为文本视图方面有任何错误,但是检查你的xml,检查文本颜色是否与背景颜色相匹配,例如文本视图的背景是白色的,文本颜色也是白色的,很明显,你不能看到文本.或者如果没有,你可以像这样尝试::::project_name_textView.setText(String.value of(project_name))。