真的很简单,但就是不明白。我想通过 ID 引用Fragments
我膨胀的 XML 文件中的视图。
我宣布观点。
TextView nameView;
我正在从布局中获取视图。
View view = inflater.inflate(R.layout.trackfrag, group, false);
nameView = (TextView)view.findViewById(R.id.trackName);
当从其活动中调用它时,我在以下方法中遇到问题。
public void setTrackDetails (String name, String description) {
Log.e("TRACKFRAG", "setTrackDetails Called");
nameView.setText(name);
Log.e("TRACKFRAG", "setTrackDetails Finished");
}
任何帮助将非常感激。
添加的 XML
<TextView
android:id="@+id/trackName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/anchor"
android:text="Track Name"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="22sp" />
如果我不调用此方法,Fragment
加载并显示正常,但我需要一种更改Text Views
.
添加片段创建
public void onTrackSelected(String track) {
Log.e("FRAGTRANS","History List Pressed");
Fragment trackFrag = getFragmentManager().findFragmentByTag("historytrack");
if (trackFrag == null) {
trackFrag = new TrackFragment();
Log.e("TRACKSEL","new trackfrag created");
}
addFragment(trackFrag, true, HISTORYTAG, FragmentTransaction.TRANSIT_NONE);
((TrackFragment) trackFrag).setTrackDetails(track,"testing");
}
添加片段方法
void addFragment(Fragment fragment, boolean addToBackStack, String tag, int transition) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(android.R.id.content, fragment);
ft.setTransition(transition);
if (addToBackStack)
ft.addToBackStack(null);
ft.commit();
}