与Android Studio中的“for”循环相关的错误

时间:2015-01-11 16:24:55

标签: java android

我是编程新手,并且一直在尝试使用this教程来学习android编程。

我正在执行下面提到的代码,并且已经收到以下错误。经过大量的尝试后,我无法解决它们:

package com.example.sony.myapplication.twitter;

import com.example.sony.myapplication.TweetAdapter;
import java.util.ArrayList;
import java.util.List;

public class Tweet{
    List<Tweet> tweets = new ArrayList<Tweet>();

    for(int i = 0; i <20; i++ ) {
        Tweet tweet = new Tweet();
        tweet.setTitle("A nice header for Tweet # " +i);
        tweet.setBody("Some random body text for the tweet # " +i);
        tweets.add(tweet);
        TweetAdapter tweetItemArrayAdapter = new TweetAdapter(this, new String[10]);
    }
}

public void setTitle(String title) {
    this.title = title;
}

public void setBody(String body) {
    this.body = body;
}

错误:

1.Error:(17, 5) error: illegal start of type
2.Error:(17, 14) error: ')' expected
3.Error:(17, 17) error: illegal start of type
4.Error:(17, 18) error: <identifier> expected
5.Error:(17, 19) error: ';' expected
6.Error:(17, 23) error: <identifier> expected
7.Error:(17, 25) error: illegal start of type
8.Error:(17, 28) error: '(' expected
9.Error:(28, 12) error: class, interface, or enum expected
10.Error:(30, 5) error: class, interface, or enum expected
11.Error:(32, 12) error: class, interface, or enum expected
12.Error:(34, 5) error: class, interface, or enum expected

错误1到8与for循环相关。

错误9和10与setTitle函数有关。

错误11和12与setBody函数有关。

在Android Studio中,for循环显示为Unexpected Token

2 个答案:

答案 0 :(得分:4)

更新:感谢Takendarkk警告我错误的答案。 如Takendarkk和BeingMIAkashs所述,for循环必须采用自己的方法。

public class Tweet {

    List<Tweet> tweets = new ArrayList<Tweet>();
    String title;
    String body;

    public Tweet() {
        setTweets();
    }

    private void setTweets() {
        for(int i = 0; i <20; i++ ) {
            Tweet tweet = new Tweet();
            tweet.setTitle("A nice header for Tweet # " +i);
            tweet.setBody("Some random body text for the tweet # " +i);
            tweets.add(tweet);
        }
        TweetAdapter tweetItemArrayAdapter = new TweetAdapter(this, new String[10]);
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public void setBody(String body) {
        this.body = body;
    }

}

此外,您传递到适配器的参数,除非您的适配器中发生了我不知道的事情,否则将生成10个空项目的列表。你确定你不是这个意思:

TweetAdapter tweetItemArrayAdapter = new TweetAdapter(this, tweets);

答案 1 :(得分:1)

您必须在任何方法中编写for循环。你不能在方法之外编写for循环。