2015-12-14 71 views
0

我是新的android工作室,我試圖創建一個帶有列表的片段並顯示它在我用來顯示我所有片段的抽屜類上,我已經閱讀了很多帖子,但找不到我要找的答案,讓我粘貼您的代碼,以便您可以檢查它。你的內容必須有一個ListView的ID屬性是'android.R.id.list'即時通訊嘗試創建一個列表片段

佈局代碼:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ListView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/lista" 
     android:layout_gravity="center_horizontal" /> 
</LinearLayout> 

片段類代碼:

public class FragmentoPrincipalChofer extends ListFragment { 
    private List<ParseObject> mViaje; 
    private ListView mLista; 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     View x = inflater.inflate(R.layout.fragmento_principal_chofer, container, false); 
     mLista = (ListView)x.findViewById(R.id.lista); 
     String[] nombres= new String[2]; 
     nombres[0]="gaston"; 
     nombres[1]="gaston"; 
     ArrayAdapter<String> adaptador = new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, nombres); 
     mLista.setAdapter(adaptador); 

     return x; 

    } 

抽屜類代碼:

public class DrawerPrincipal extends AppCompatActivity 
    implements NavigationView.OnNavigationItemSelectedListener,FragmentoPrincipalUsuario.OnFragmentInteractionListener { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_drawer_principal); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    //cargar fragment principal usuario 

    FragmentoPrincipalChofer fragmento=(FragmentoPrincipalChofer) getSupportFragmentManager().findFragmentByTag("fragmento"); 
    if (fragmento==null){ 
     fragmento=new FragmentoPrincipalChofer(); 
     android.support.v4.app.FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
     transaction.add(android.R.id.content,fragmento,"fragmento"); 
     transaction.commit(); 

    } 


    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.setDrawerListener(toggle); 
    toggle.syncState(); 

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 
} 

回答

0

您使用的是ListFragment所以...

ListFragment具有由單個列表視圖組成的默認佈局。但是,如果您願意,您可以通過從onCreateView(LayoutInflater,ViewGroup,Bundle)返回自己的視圖層次來自定義片段佈局。要做到這一點,您的視圖層次結構必須包含的ID的ListView控件對象「@android:ID /列表」(或列表,如果它在代碼)

更改ListView XML以下

<ListView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@android:id/list" 
    android:layout_gravity="center_horizontal" /> 

而且你提到它是這樣

mLista = (ListView)x.findViewById(android.R.id.list); 
+0

嗨安德魯非常感謝您前面回答現在它的工作,但我有一個問題,它的重疊標題欄的列表,你知道我怎麼能查那是什麼?非常感謝。 –

+0

你能提供一張照片嗎?儘管 –

+0

可以,但在另一個問題中問你可能會更好。 –

相關問題