【问题标题】:Text not used again if it used once in Random Method如果在随机方法中使用过一次,则不会再次使用文本
【发布时间】:2016-03-11 15:13:16
【问题描述】:

我通过 Random 方法使用从 string.xml 到我的 textview 的随机文本。现在,如果已经使用过一次,我不想再次使用该文本。我们将不胜感激。

我将文本放在 string.xml 中

<string name="one">1</string>
<string name="two">2</string>
<string name="three">3</string>
<string name="four">4</string>
<string name="five">5</string>
<string name="six">6</string>
<string name="seven">7</string>
<string name="eight">8</string>
<string name="nine">9</string>
<string name="ten">10</string>

<string name="one_explaination">This is number one</string>
<string name="two_explaination">This is number two</string>
<string name="three_explaination">This is number three</string>
<string name="four_explaination">This is number four</string>
<string name="five_explaination">This is number five</string>
<string name="six_explaination">This is number six</string>
<string name="seven_explaination">This is number seven</string>
<string name="eight_explaination">This is number eight</string>
<string name="nine_explaination">This is number nine</string>
<string name="ten_explaination">This is number ten</string>

我在 MainActivity 中的代码:

Random number,number_explaination;
int [] array_number,array_number_explaination;
int textview_number,textview_number_explaination;
TextView textView1,textView2;

number = new Random();
array_number = new int[] {R.string.one,R.string.two,R.string.three,R.string.four,R.string.five,R.string.six,R.string.seven,
        R.string.eight,R.string.nine,R.string.ten};

array_number_explaination = new int[] {R.string.one_explaination,R.string.two_explaination,R.string.three_explaination,
        R.string.four_explaination,R.string.five_explaination,R.string.six_explaination,R.string.seven_explaination,
        R.string.eight_explaination,R.string.nine_explaination,R.string.ten_explaination};  

textview_number = number.nextInt(array_number.length - 1);
textView1.setText(getResources().getString(array_number[textview_number]));
textView2.setText(getResources().getString(array_number_explaination[textview_number]));

【问题讨论】:

  • 你遇到了什么问题?
  • 我不知道该怎么做...我希望文本显示一次,然后文本不应再次显示...意味着如果我的文本视图中有 4 次是时候不再显示了...
  • 首先,将 textview_number = number.nextInt(array_number.length - 1); 更改为 textview_number = number.nextInt(array_number_explaination.length - 1); 并且您已经在 TextView 中显示了随机文本,那么您遇到了什么问题?
  • @MikeM。我怎样才能删除它们
  • @ρяσѕρєяK 我正在随机获取文本,但如果我得到它一次,那么它不会在按钮单击时再次显示给我

标签: android random textview


【解决方案1】:
LinkedList<Integer>  number=new LinkedList<Integer>();
LinkedList<Integer>  number_exp=new LinkedList<Integer>();
//add data
int randomIndex=(int) (Math.random()*(strs.size()-1));
textview1.setText(number.get(randomIndex));
textview2.setText(number_exp.get(randomIndex));
number.remove(randomIndex);
number_exp.remove(randomIndex);

【讨论】:

  • 你能解释一下如何在代码中添加我的字符​​串数据。
  • 我又读了一遍你的代码,使用 LinkedList 会更好。方法LinkedList.add(Integer i) 就可以了
  • 我试过了......但它并没有解决我的问题......首先我想要一次在两个文本视图上随机显示两个文本......意味着这个“R.string.nine " 和这个 "R.string.nine_explaination" 如果它使用过一次,都从列表中删除
  • int randomIndex=(int) (Math.random()*(strs.size()-1)); .....如何处理这段代码中的“strs”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-23
  • 2019-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-30
相关资源
最近更新 更多