2016-03-01 65 views
0

我試圖在表中顯示一個列表視圖。我有很多不同的問題,但現在,再也沒有錯誤信息,所以我不知道該怎麼做。Listview不會出現在片段

ListView不顯示。 你能幫我嗎,我是初學者,這是我的第一個ListView。也許我完全錯了。觀看了教程如何將靜態事物添加到片段,並且我試圖使其適合listview。

非常感謝。

這是我爲ListView片段代碼:

import android.app.ListFragment; 
import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.Toast; 
import android.support.v4.app.Fragment; 

public class Fragment3 extends android.support.v4.app.ListFragment implements AdapterView.OnItemClickListener { 
ListView LView; 
View v; 
String[] values = {"test","test2","test3"}; 
@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    v = inflater.inflate(R.layout.fragement3_layout, null); 
    return v; 
} 
public void onActivityCreated(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 
    ListAdapter adapter =new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,values); 
    setListAdapter(adapter); 
    getListView().setOnItemClickListener(this); 
} 

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
} 
@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

    Toast.makeText(getActivity(), "Item: " + position, Toast.LENGTH_SHORT) 
      .show(); 

} 
} 

這裏是爲Fragmentpageradapter

public class ViewPagerAdapter1 extends FragmentPagerAdapter { 

String[] tabtitlearray = {"One","Two","List"}; 
public ViewPagerAdapter1 (FragmentManager manager){ 
    super(manager); 

}

@Override 
public Fragment getItem(int position) { 
    switch(position) { 
     case 0: return new Fragment1(); 
     case 1: return new Fragment2(); 
     case 2: return new Fragment3(); 
    } 

    return null; 
}//festlegen was in welchem Fragment was angezeigt wird 

@Override 
public int getCount() { 

    return 3;//Anzahl der Tabs 
} 
public CharSequence getPageTitle(int position){ 
    return tabtitlearray[position]; 
} 
} 

代碼而這正是活動

public class Welcome extends AppCompatActivity { 
Toolbar toolbar; 
ViewPager viewpager; 
TabLayout tabLayout; 

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

    viewpager = (ViewPager) findViewById(R.id.viewpager); 
    ViewPagerAdapter1 viewPagerAdapter1 = new ViewPagerAdapter1(getSupportFragmentManager()); 
    viewpager.setAdapter(viewPagerAdapter1); 

    tabLayout = (TabLayout) findViewById(R.id.tablelayout); 
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); //Fuer das drehen damit TabLayout richtig ausgefuellt ist 
    tabLayout.setupWithViewPager(viewpager); 

    tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      viewpager.setCurrentItem(tab.getPosition()); 
     } 

     @Override 
     public void onTabUnselected(TabLayout.Tab tab) { 

     } 

     @Override 
     public void onTabReselected(TabLayout.Tab tab) { 

     } 
    }); 
} 
} 

最後但並非最不重要的XML

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

<ListView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@id/android:list" 
    android:layout_centerVertical="true" 
    android:layout_alignParentStart="true" /> 
</RelativeLayout> 

很抱歉,如果這種方式是完全錯誤的。我只是想了解不同的基礎知識是如何工作的。

如果有人幫我,會很高興。

謝謝!

+0

Listview不應該有一個高度或寬度設置爲wrap_content – 2016-03-01 06:24:06

+0

謝謝,但這似乎不是問題。它也不適用於「match_parent」。 ArrayAdapter是否正確?我認爲信息不會添加到列表視圖中,但沒有錯誤,它只是空的。我想在代碼中我的邏輯有什麼問題。 – Kilimanscharo

+0

靜態的只顯示一個文本框,它工作正常! – Kilimanscharo

回答

0

問題已解決。 onActivityCreated(...)是錯誤的。

public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    ListAdapter adapter =new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,values); 
    setListAdapter(adapter); 
    getListView().setOnItemClickListener(this); 
} 

無論如何,謝謝你。 工程!