1

ListViewを埋めるアクティビティがあり、動作しています。タブViewPagerを使用しているため、アクティビティの代わりにフラグメントを使用する必要があります。だから誰かが私のアクティビティからフラグメントを作成するために何を変更する必要があるか教えてもらえます(FragmentActivityはタブでは使用できません)。

package com.basnijkamp.safanagendatest;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class ListSample extends Activity {  

    public final static String ITEM_TITLE = "title";  
    public final static String ITEM_CAPTION = "caption";  

    public Map<String,?> createItem(String title, String caption) {  
        Map<String,String> item = new HashMap<String,String>();  
        item.put(ITEM_TITLE, title);  
        item.put(ITEM_CAPTION, caption);  
        return item;  
    }  

    @Override  
    public void onCreate(Bundle icicle) {  
        super.onCreate(icicle);  

        List<Map<String,?>> september2012 = new LinkedList<Map<String,?>>();  
        september2012.add(createItem("Electra Mining Africa 2012", "Johannesberg South Africa"));  
        september2012.add(createItem("MSV", "Brno Czech Republic"));  
        september2012.add(createItem("IMTS", "Chicago USA"));
        september2012.add(createItem("AMB", "Stuttgart Germany"));  
        september2012.add(createItem("Den Teknise Messe", "Lillestrom Norway"));  
        september2012.add(createItem("ITM", "Plovdiv Bulgaria"));  

        List<Map<String,?>> oktober2012 = new LinkedList<Map<String,?>>();  
        oktober2012.add(createItem("BIMU", "Milan Italy"));  
        oktober2012.add(createItem("Matek", "Istanbul"));
        oktober2012.add(createItem("TIB", "Bucharest Romania"));
        oktober2012.add(createItem("Vienna Tec", "Vienna Austria"));
        oktober2012.add(createItem("Euro Blech 2012", "Hanover Germany"));
        oktober2012.add(createItem("Technica Massan", "Stockholm Sweden"));

        List<Map<String,?>> november2012 = new LinkedList<Map<String,?>>();  
        november2012.add(createItem("JIMTOF", "Tokyo Japan"));
        november2012.add(createItem("Metavak", "Gorinchem Netherlands"));
        november2012.add(createItem("FABTECH", "Las Vegas USA"));
        november2012.add(createItem("Prodex", "Basel Switzerland"));
        november2012.add(createItem("EMAF 2012", "Porto Portugal"));
        november2012.add(createItem("Manufact Indonesia", "Jakarta Indonesia"));

        // create our list and custom adapter  
        SeparatedListAdapter adapter = new SeparatedListAdapter(this);  
        adapter.addSection("September 2012", new SimpleAdapter(this, september2012, R.layout.list_complex,   
            new String[] { ITEM_TITLE, ITEM_CAPTION }, new int[] { R.id.list_complex_title, R.id.list_complex_caption }));
        adapter.addSection("Oktober 2012", new SimpleAdapter(this, oktober2012, R.layout.list_complex,   
            new String[] { ITEM_TITLE, ITEM_CAPTION }, new int[] { R.id.list_complex_title, R.id.list_complex_caption }));
        adapter.addSection("November 2012", new SimpleAdapter(this, november2012, R.layout.list_complex,   
                new String[] { ITEM_TITLE, ITEM_CAPTION }, new int[] { R.id.list_complex_title, R.id.list_complex_caption }));

        ListView list = new ListView(this);  
        list.setAdapter(adapter);  
        this.setContentView(list);  

    }  

}  

前もって感謝します

4

1 に答える 1

2

ListFragment を拡張することをお勧めします - http://developer.android.com/reference/android/app/ListFragment.html

だからこれから:

        ListView list = new ListView(this); 
        list.setAdapter(adapter); 
        this.setContentView(list); 

これを行う必要があります:

        setListAdapter (adapter); 

から

@Override 
public void onCreate(Bundle icicle) { 
        super.onCreate(icicle);

->

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

そしてからListSample extends Activity- >ListSample extends ListFragment

詳細が必要な場合はお知らせください。頑張ってください

于 2012-09-02T18:17:29.317 に答える