【发布时间】:2014-04-30 14:50:45
【问题描述】:
我正在制作一个新闻应用程序,其中有一个片段将所有新闻保存在一个列表中,另一个片段包含视频列表。当您触摸一个新的片段时,它会从名为 openNewsCont 的活动中调用一个方法,该方法将用另一个片段替换当前片段。
我遇到的问题是,当我调用该方法时出现空白屏幕,我查看了许多其他代码,但找不到解决问题的方法。
这是我从 MainActivity.java 调用的方法
public void openNewsCont(String text) {
android.support.v4.app.FragmentManager fm = getSupportFragmentManager();
android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.pager, new NewsContent() );
ft.addToBackStack(null);
ft.commit();
fm.executePendingTransactions();
}
这里是Tab1.java,它保存新闻并从MainActivity.java调用方法
package com.example.link_test;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.LinearLayout;
public class Tab1 extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View android = inflater.inflate(R.layout.tab1, container, false);
LinearLayout newLink = (LinearLayout) android.findViewById(R.id.news1);
newLink.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String text = "Text from fragment";
MainActivity ma = (MainActivity) getActivity();
ma.openNewsCont(text);
}
});
return android;
}
}
这是应该被调用并显示一个空白屏幕 NewsContent.java 的片段
package com.example.link_test;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class NewsContent extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.news_content, container, false);
return view;
}
}
【问题讨论】:
标签: java android android-fragments fragment fragmenttransaction