【发布时间】:2017-10-12 20:20:15
【问题描述】:
我有一个可点击的 TextView,当您按下它时,它会从数组列表中检索元素并在同一个 TextView 上随机显示它们。每次按下 TextView 时,它都会显示另一个元素。
现在,我想按显示的顺序保存这些元素,然后按上一个按钮,每次显示被显示的元素的前一个元素,直到第一个元素..
我自己尝试了一下,但它只保留一个元素,而不是所有已显示的元素,并且不会向后显示它们。
ArrayList<String> random = new ArrayList<String>();
Text_View.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (myString==null||myString.size()==0){
myString = new ArrayList<String>();
Collections.addAll(myString,res.getStringArray(R.array.Text_array));
Collections.shuffle(myString);
}
String q = myString.remove(0);
Text_View.setText(q);
for (int i=0;i<myString.size();i++) {
random.add(q);
}
}
});
prev.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int counter = myString.size() - 1; counter >= 0; counter--) {
Text_View.setText(random.get(counter));
}
}
});
谢谢你..
更新 我正在发布带有您指出的更正的代码,但仍然无法正常工作,但更糟糕的是,它崩溃了! 公共类 MyActivity 扩展 Activity {public int counter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.family_excuses);
Text_View.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int counter = myString.size() - 1;
if (myString==null||myString.size()==0){
myString = new ArrayList<String>();
Collections.addAll(myString,res.getStringArray(R.array.Text_array));
Collections.shuffle(myString);
}
String q = myString.remove(0);
Text_View.setText(q);
for (int i=0;i<myString.size();i++) {
random.add(q);
}
}
});
prev.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Text_View.setText(random.get(counter));
counter--;
}
});
更新 2
我做出新的改变。即使我多次按下该按钮也不会崩溃,但是,我每次只得到第一个显示的元素。新代码是:
public class MyActivity extends Activity {
public int counter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.family_excuses);
Text_View.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Resources res = getResources();
if (myString==null||myString.size()==0){
myString = new ArrayList<String>();
Collections.addAll(myString,res.getStringArray(R.array.Text_array));
Collections.shuffle(myString);
}
String q = myString.remove(0);
Text_View.setText(q);
for (int i=0;i<myString.size();i++) {
random.add(q);
}
}
});
prev.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int counter = myString.size() - 2;
if (counter>=0){
Text_View.setText(random.get(counter));
counter--;
}
对不起,我不知道如何使用控制台..
【问题讨论】: