2016-11-28 41 views
0
package sampleapp.razen.com.sampleapp; 

import android.app.ListActivity; 
import android.os.Bundle; 

public class SectionListView extends ListActivity { 

    private CustomAdapter mAdapter; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mAdapter = new CustomAdapter(this); 
     for (int i = 1; i < 30; i++) { 
      mAdapter.addItem("Row Enter #" + i); 
      if (i % 4 == 0) { 
       mAdapter.addSectionHeaderItem("Group #" + i); 
      } 
     } 
     setListAdapter(mAdapter); 
    } 


} 

如何可以编辑这个for循环有这一点,把我如何在Java中实现这个for循环

#1 normal for loop 
Text 1 
Text 2 
Text 3 
#2 advance for loop 
Text 1 
Text 2 
Text 3 
+0

我没有看到预期产出和实际产出之间的差异?带有散列标记的行? – Robert

回答

0
public class SectionListView extends ListActivity { 

    private CustomAdapter mAdapter; 
    List<String> list = new ArrayList<>(); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mAdapter = new CustomAdapter(this); 
     fillList(); 
     fillAdapter(mAdapter); 

     setListAdapter(mAdapter); 
    } 

    private void fillList(){ 
     for (int i = 0; i < 10; i++) { 
      //this will alternate between "normal" and "advance" 
      list.add(i % 2 == 0 ? "normal" : "advance"); 

      list.add("Text"); 
      list.add("Text."); 
      list.add("Text.."); 
     } 
    } 

    private void fillAdapter(CustomAdapter adapter) { 
     for (int i = 0; i < list.size(); i++) { 
      int row = i % 3; 

      if (row == 0) { 
       adapter.addSectionHeaderItem(list.get(i) + (i + 1)); 
       continue; 
      } 

      adapter.addItem(list.get(i) + (row + 1)); 
     } 
    } 
} 
+0

它工作,但如何可以更改这些组#1文本1文本2像皮特约翰等真实姓名 –

+0

它应该是30循环,它是一个行的列表(或多个列表中的3个项目)是交替命名对于团体或名称来自哪里? – zombie

+0

它不是一个必须的30个循环,但我只需要不同的4个项目(多个列表中的4个项目) –

0
mAdapter = new CustomAdapter(this); 
     for (int i = 0; i < 29; i++) { 
      int value = i % 3; 
      if (value == 0) { 
       mAdapter.addSectionHeaderItem("Group #" + (i+1)); 
      } 
      mAdapter.addItem("Row Enter #" + (value + 1)); 
     } 

“现在的工作怎么能我编辑这些行输入#1名称由 组名称不同。我的意思是,我的名字组 一个不应该在小组前二..thanks为u帮助”

你可以再这样说:

class Group { 
    String name; 
    String members[]; 

    public Group(String name, String [] members) { 
    this.name = name; 
    this.members = members; 
    } 
} 

在你的onCreate():

ArrayList<Group> groups = new ArrayList<>(); 
groups.add(new Group("Group A", new String[]{"A","B","C"})); 
groups.add(new Group("Group B", new String[]{"A","B","C"})); 
groups.add(new Group("Group C", new String[]{"A","B","C"})); 
groups.add(new Group("Group D", new String[]{"A","B","C"})); 
groups.add(new Group("Group F", new String[]{"A","B","C"})); 

mAdapter = new CustomAdapter(this); 
for(Group group : groups) { 
    mAdapter.addSectionHeaderItem(group.name); 
    for (int i = 0; i < group.members.length; i ++) { 
     mAdapter.addItem(group.members[i]); 
    } 
} 
setListAdapter(mAdapter); 
+0

它现在显示任何东西,请我如何使它显示不同的文字,例如第一组1(约翰)(彼得)第二组玛丽弗朗西斯等 –

+0

你能提供你的完整代码吗? – Tasneem

+0

我有两个java文件,但这是一个输出 –