2017-07-14 83 views
0

我想在列表视图上显示for循环编号,但它不起作用。 App's Layout如何在listview中显示整数?

public class MainActivity extends AppCompatActivity { 

    private ListView marksixlist; 
    private Button mRandombtn, mCleanbtn; 
    private TextView mText; 
    private ArrayList<Integer> marksixnum = new ArrayList<Integer>(); 
    private ArrayAdapter arrayAdapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     marksixlist = (ListView) findViewById(R.id.listview1); 

     mRandombtn = (Button) findViewById(R.id.randombtn); 
     mCleanbtn = (Button) findViewById(R.id.cleanbtn); 
     mText = (TextView) findViewById(R.id.items); 

     mRandombtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       for (int j = 1; j <= 6; j++) { 
        int random = (int) (Math.random()* 49+1); 
         marksixnum.add(random); 
         Collections.shuffle(marksixnum); 
       } 
      } 
     }); 

     arrayAdapter = new ArrayAdapter<Integer>(this, R.layout.listitempage, marksixnum); 
     marksixlist.setAdapter(arrayAdapter); 
     Log.d("aaa", "The markssix is - " + marksixnum); 
    } 
} 
+0

嗨卢卡斯,请检查我的解决方案。如果可以接受,请接受答案或投票。 – JRG

+0

如果我的解决方案已解决您的问题,请接受答案并投票表决! – JRG

回答

0

一旦你产生的随机数和随机他们在随后的for循环中添加arrayAdapter到ListView marksixlist再次结束,它会工作的魅力。

在生成随机数之前,我还额外清除了ArrayList marksixnum,以便列表不会继续增长。

其可选的,如果你需要最后点击元素然后删除marksixnum.clear()

mRandombtn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // Do this if you do not want 
     // numbers from last click 
     marksixnum.clear(); 
     for (int j = 1; j <= 6; j++) { 
      int random = (int) (Math.random()* 49+1); 
      marksixnum.add(random); 
      Collections.shuffle(marksixnum); 
     } 
     // add arrayAdapter to listview 
     marksixlist.setAdapter(arrayAdapter); 
    } 
});