如何调用MainActivity类中单独的Fragement类的onCreateView?

时间:2016-03-01 18:17:57

标签: android android-layout listview android-fragments main-activity

请帮帮我。我想将Fragment类List显示到MainActivity中。我尝试主要活动new();但它显示空白页面,但是当我将所有数据放入mainActivity并运行时它会显示数据列表。 实际上,我想学习如何将这个方法从其他类转换为mainactivity。

def send_data(result):
    domain = config.get('cppib', 'domain')
    item = ZabbixSender(
        get_proxyserver(zabbix_conf), config.get('zabbix', 'port'))
    if job_data:
        fqdn_name = job_data.AgentName.lower() + domain.lower()
        wins_name = job_data.AgentName.upper()
        bad_wins_name = job_data.AgentName.lower()
        bad_fqdn_name = job_data.AgentName.upper() + domain.upper()
    else:
        print "FAIL: Requested Job was not found"
        sys.exit(1)

    server_list = [fqdn_name, wins_name, bad_wins_name, bad_fqdn_name]
    for servername in server_list:
        packet = ZabbixPacket()
        monitor_items = config.items('items')
        for key, value in monitor_items:
            data = 'app.tidal.{0}.{1}_{2}'.format(job_data.JobOwner, job_data.JobAlias, value)
            packet.add(servername, data, row_item)
            print packet
        item.send(packet)
        while True:
            if 'processed: 5' in item.status['info']:
                return item.status['info']
            break
            sys.exit(0)
    print "INVESTIGATE: All Items did not send"

2 个答案:

答案 0 :(得分:0)

您不能通过调用new来实例化片段,您必须将其添加到堆栈中:

{{1}}

R.id.container是布局中的容器(通常是FrameLayou)来保存你的片段。

答案 1 :(得分:0)

MainActivity layout file中,您应该有一个FrameLayout,其中包含您的片段。

<FrameLayout
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

现在在你的MainActivity课程中,你将像这样实例化你的片段:

 getSupportFragmentManager().beginTransaction()
                .add(R.id.fragment_container, new ForecastFragment(), ForecastFragment.class.getSimpleName()).commit();

您可以在MainActivity课程中的任何位置实例化您的片段。在您的情况下,您应该在MainActivity's onCreate()

中执行此操作

如果您不想使用Android支持版本库,可以使用:

 getFragmentManager().beginTransaction()
                    .add(R.id.fragment_container, new ForecastFragment(), ForecastFragment.class.getSimpleName().commit();