Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用按钮显示一个字符串并更改为列表中的下一个字符串?_Java_Android - Fatal编程技术网

Java 如何使用按钮显示一个字符串并更改为列表中的下一个字符串?

Java 如何使用按钮显示一个字符串并更改为列表中的下一个字符串?,java,android,Java,Android,我正在制作一个应用程序,使用“下一步”按钮显示下一个字符串。但是我的方法根本不显示字符串。我需要使用setText方法吗 活动代码 public class FunFactsActivity extends AppCompatActivity { Button back; Button next; TextView fact; private List<String> listOfFacts; @Override protected

我正在制作一个应用程序,使用“下一步”按钮显示下一个字符串。但是我的方法根本不显示字符串。我需要使用setText方法吗

活动代码

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);
        }
    });