开发者

creating an object in java

i have a simple doubt in android programming. I am not familiar with java coding.so it might be a simple problem.

In the first two lines I am retrieving an array, which i passed from another activity to this activity...Then i am creating an array list . I am creating an object in the 4th line. Now comes the problem ... I have to run a for loop to get the url value, which i have to pass it in the BaseFeedParser class. but i cant use the 4th line, i.e creating the object inside the loop because it will create a new object each time... which should not happen ... how can i fix this probelm?

                    Intent myintent = getIntent();
        String[] ActiveURL = myintent.getStringArrayExtra("URL");

        List<String> titles = new ArrayList<String>();
        BaseFeedParser parser = new BaseFeedParser(url);

        // fetching all active URLs
        for (int i = 0; i < ActiveURL.length + 1; i++) {
            url = ActiveURL[i];
            messages.addAll(parser.parse());
        }

        // now getting the titles out of the messages for display
        for (Message msg : messages) {
            titles.add(msg.getTitle());
        }

Thanks in advance 开发者_如何学运维...


There are some problems in your java code :

    Intent myintent = getIntent();
    //variables are named in camel case, starting with a lower case letter
    String[] activeURL = myintent.getStringArrayExtra("URL");

    List<String> titles = new ArrayList<String>();
    //we will use parser later, see below
    //BaseFeedParser parser = new BaseFeedParser(url);

    // fetching all active URLs
    //it's very easy to loop through a table in java / C / C++
    //learn the pattern, it's the simplest, you got confused with the final index
    for (int i = 0; i < activeURL.length ; i++) {
        //here you don't change the former object url was referencing,
        //you are saying that you give the name url to another object in the array
        //it doesn't create any new item, change giving them a name to use them
        url = activeURL[i];
        //create a new parser for each url, except if they can be recycled
        //i.e they have a property setUrl
        messages.addAll( new BaseFeedParser(url).parse());
    }

    // now getting the titles out of the messages for display
    for (Message msg : messages) {
        titles.add(msg.getTitle());
    }

Indeed, you could even shorten the whole thing by

    Intent myintent = getIntent();
    String[] activeURL = myintent.getStringArrayExtra("URL");
    List<String> titles = new ArrayList<String>();

    // fetching all active URLs
    //use a for each loop
    for ( String url : activeURL ) {
        //loop through messages parsed from feed to add titles
        for (Message msg : new BaseFeedParser(url).parse() ) {
           titles.add(msg.getTitle());
        }
    }

if you don't need the List of Message you called messages.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜