2014-12-25 163 views
0

我想用自定義佈局構建一個ListView,但到目前爲止還沒有能夠成功地做到這一點。我是一名初學者,並且一直在跟隨教程來完成它。 這是我在做什麼:ListView與自定義適配器[Android]

//this is where I want the custom list items to be displayed. 
    //GroupAdapter is the constructor of the class in which I'm trying to make a custom adapter 
    stringArray = new String[10]; 
    groupItemArrayAdapter = new GroupAdapter(this,stringArray); 
    groupListView = (ListView) findViewById(R.id.mainList); 
    groupListView.setAdapter(groupItemArrayAdapter); 

    //this is the code in GroupAdapter.java class 
    public class GroupAdapter extends ArrayAdapter{ 
    private LayoutInflater inflater; 

    public GroupAdapter(Activity activity, String[] items){ 
     super(activity,R.layout.group_view); 
     inflater=activity.getWindow().getLayoutInflater(); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent){ 
     return inflater.inflate(R.layout.group_view,parent,false); 
    } 
    } 

當我啓動應用程序,出現空白屏幕。最初,當我使用Android的默認佈局列表,列表項目被顯示,但不再是......我不明白我做錯了什麼。誰能幫忙?

這裏是group_view.xml文件

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

<TextView 
    android:id="@+id/gName" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Group Name" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:layout_marginRight="100dp" 
    android:textStyle="bold" /> 

<TextView 
    android:id="@+id/activity" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/signIn" 
    android:paddingLeft="15dp" 
    android:paddingRight="15dp" 
    android:text="5" 
    android:textAppearance="?android:attr/textAppearanceSmall" 
    android:textStyle="bold" /> 

</LinearLayout> 
+0

看到http://www.vogella.com/tutorials/AndroidListView/article.html – gio

+0

@ gio已經做了,沒有幫助 – leMS

+0

@leMS提供xml佈局'layout.group_view' – gio

回答

0

您可以通過替換所有的代碼下一個

stringArray = new String[10]; 
groupItemArrayAdapter = new GroupAdapter(this,stringArray); 
groupListView = (ListView) findViewById(R.id.mainList); 
groupListView.setAdapter(new ArrayAdapter<String>(this, R.layout.group_view, R.id.gName, stringArray)); 

,當你想在gName字段,以顯示字符串,如果你想它是情況拍攝他們在activity,那麼你需要使用

groupListView.setAdapter(new ArrayAdapter<String>(this, R.layout.group_view, R.id.activity, stringArray)); 

Answ呃因爲「爲什麼它是空白的?」

@Override 
public View getView(int position, View convertView, ViewGroup parent){ 
    return inflater.inflate(R.layout.group_view,parent,false); 
} 

您只能膨脹空視圖,不會將字符串分配給字段。這將是(簡單版)

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    convertView = inflater.inflate(R.layout.group_view, parent, false); 
    TextView textView = (TextView)convertView.findViewById(R.id.gName); 
    String item = getItem(position) 
    textView.setText(item); 
    return convertView; 
} 

您將能夠實現更好的版本閱讀文章後Making ListView Scrolling Smooth

相關問題