Java 如何使用按钮显示一个字符串并更改为列表中的下一个字符串?
我正在制作一个应用程序,使用“下一步”按钮显示下一个字符串。但是我的方法根本不显示字符串。我需要使用setText方法吗 活动代码Java 如何使用按钮显示一个字符串并更改为列表中的下一个字符串?,java,android,Java,Android,我正在制作一个应用程序,使用“下一步”按钮显示下一个字符串。但是我的方法根本不显示字符串。我需要使用setText方法吗 活动代码 public class FunFactsActivity extends AppCompatActivity { Button back; Button next; TextView fact; private List<String> listOfFacts; @Override protected
public class FunFactsActivity extends AppCompatActivity {
Button back;
Button next;
TextView fact;
private List<String> listOfFacts;
@Override
protected void onCreate( Bundle savedInstanceState) {
setContentView(R.layout.activity_fun_facts);
super.onCreate(savedInstanceState);
fact = findViewById(R.id.fact);
back = findViewById(R.id.back);
next = findViewById(R.id.next);
listOfFacts = new ArrayList<>();
//adds facts to the listOfFacts.
for (int i = 0; i < new Database().facts.length; i++) {
listOfFacts.add(new Database().facts[i]);
}
final String firstFact = listOfFacts.get(0);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String nextFact;
nextFact = firstFact+1;
displayFact(nextFact);
}
});
}
public String displayFact(String fact){
return fact;
}// display all of the facts one at a time, in order, go to the next one using the "next" button.
}
这就是你的问题:
public String displayFact(String fact){
return fact;
}
改为:
public void displayFact(String fact){
this.fact.setText(fact);
}
另外,声明一个计数器为该类的成员,以跟踪您的事实:
private int counter;
@Override
protected void onCreate( Bundle savedInstanceState) {
...
counter = 0;
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
counter += 1
String nextFact = listOfFacts.get(counter);
displayFact(nextFact);
}
});
为什么displayFact需要返回字符串?它可以是public void displayFactString事实{this.fact.setTextfact;}
private int counter;
@Override
protected void onCreate( Bundle savedInstanceState) {
...
counter = 0;
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
counter += 1
String nextFact = listOfFacts.get(counter);
displayFact(nextFact);
}
});