Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.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
For循环中的For循环-listaries-Android,Java!_Java_Android_Listview - Fatal编程技术网

For循环中的For循环-listaries-Android,Java!

For循环中的For循环-listaries-Android,Java!,java,android,listview,Java,Android,Listview,这是一个很难回答的问题,但我还是要问,因为我想我很快就会发疯的 我想要实现的是一个由twitter填充的ListView,我已经实现了,两个listarys由tweet和图片URL填充。 这是成功的,但是当我刷新twitter时,新的twitter堆会低于旧的twitter堆 我可以简单地清除列表数组,但是所有的twitter都会消失在列表中,这是不可取的,我只想添加新的tweet,并使新的tweet位于列表的顶部 所以我想这是一个双重问题 我如何列出只添加的列表 哪一个不在那里 如何制作最新推

这是一个很难回答的问题,但我还是要问,因为我想我很快就会发疯的

我想要实现的是一个由twitter填充的
ListView
,我已经实现了,两个
listary
s由tweet和图片URL填充。 这是成功的,但是当我刷新twitter时,新的twitter堆会低于旧的twitter堆

我可以简单地清除列表数组,但是所有的twitter都会消失在列表中,这是不可取的,我只想添加新的tweet,并使新的tweet位于列表的顶部

所以我想这是一个双重问题

  • 我如何列出只添加的列表 哪一个不在那里
  • 如何制作最新推文 出现在顶部
  • 下面的代码是(凌乱的)代码中最重要的部分,这就是刷新方法

    public void updateTwitter(){
    
            twitter = new TwitterFactory().getInstance();
    
            try {
                QueryResult result = twitter.search(new Query(TWEETQUERY));
                tweets = result.getTweets();
                for (Tweet tweet : tweets) {
                    String tweetProfile = tweet.getProfileImageUrl();
                    String twwwwww = tweet.getText();
                    for(String tww : tweetString){
    
                        if(tww.equals(twwwwww)){
                            System.out.println("Not added");
                        } else {
                            tweetString.add(twwwwww);
                            urlArray.add(tweetProfile);
                        }
                    }
                }
                if(adapter != null) {
                    tweetList.setAdapter(adapter);
                    System.out.println("adapter sets, not created");
                } else {
                    adapter = new LazyAdapter(this, urlArray, tweetString);
                    tweetList.setAdapter(adapter);
                }
            } catch (TwitterException te) {
                te.printStackTrace();
                System.out.println("Failed to search tweets: " + te.getMessage());
            }
        }
    

    听起来您真的想要一个集合,而不是一个列表,并且能够根据某些条件(在本例中是添加时间)遍历它。 也许一个简单的回答是合适的

    实现方式如下:

    /* SortedSet<Tweet> tweets defined somewhere above, possibly with a custom Comparator */
    
    public void updateTwitter()
    {
       try
       {
           tweets.addAll(TwitterFactory.getInstance().search(query).getTweets());
       } catch (TwitterException te) {
           te.printStackTrace();
           System.out.println("Failed to search tweets: " + te.getMessage());
       }
    }
    
    /*上面某处定义的SortedSet推文,可能使用自定义比较器*/
    public void updatewitter()
    {
    尝试
    {
    addAll(TwitterFactory.getInstance().search(query.getTweets());
    }捕获(twitter异常){
    te.printStackTrace();
    System.out.println(“未能搜索tweets:+te.getMessage());
    }
    }
    
    听起来您真的想要一个集合,而不是一个列表,并且能够根据一些标准(在本例中是添加时间)遍历它。 也许一个简单的回答是合适的

    实现方式如下:

    /* SortedSet<Tweet> tweets defined somewhere above, possibly with a custom Comparator */
    
    public void updateTwitter()
    {
       try
       {
           tweets.addAll(TwitterFactory.getInstance().search(query).getTweets());
       } catch (TwitterException te) {
           te.printStackTrace();
           System.out.println("Failed to search tweets: " + te.getMessage());
       }
    }
    
    /*上面某处定义的SortedSet推文,可能使用自定义比较器*/
    public void updatewitter()
    {
    尝试
    {
    addAll(TwitterFactory.getInstance().search(query.getTweets());
    }捕获(twitter异常){
    te.printStackTrace();
    System.out.println(“未能搜索tweets:+te.getMessage());
    }
    }
    
    制作一个扩展自并调用notifyDataSetChanged()的适配器。

    制作一个扩展自并调用notifyDataSetChanged()的适配器。

    大概,LazyAdapter源自BaseAdapter,并由
    URLARY
    支持。如果是这样,要使tweet显示在顶部,您需要将它们添加到数组的开头

    使用
    add(0,newEntry)
    to和
    notifyDataSetChanged()
    to

    还有几点需要注意:

    1) 我不清楚您的意图,尤其是看到像
    twww.equals(twwww)
    这样的代码。看起来您正在维护旧的tweet,并试图只添加新的tweet,但变量名不清楚,如
    twww、twwwwww和tweetString
    ,我只能猜测


    2) 您不必一直设置适配器。设置listview、适配器和备份数组之间的关系后,您只需更新数组并通知适配器。

    大概LazyAdapter源自BaseAdapter,并由
    urlArray
    支持。如果是这样,要使tweet显示在顶部,您需要将它们添加到数组的开头

    使用
    add(0,newEntry)
    to和
    notifyDataSetChanged()
    to

    还有几点需要注意:

    1) 我不清楚您的意图,尤其是看到像
    twww.equals(twwww)
    这样的代码。看起来您正在维护旧的tweet,并试图只添加新的tweet,但变量名不清楚,如
    twww、twwwwww和tweetString
    ,我只能猜测


    2) 您不必一直设置适配器。设置listview、适配器和支持数组之间的关系后,您只需更新数组并通知适配器即可。

    当然,您是对的,这些变量名至少可以说是令人困惑的,但我真的很累,我的命名约定智商也下降了。应该发布一个更清晰的例子,对此表示抱歉。当然,我不必一直设置适配器,我们的建议很有道理。@Joakim-我自己也曾在很多晚上经历过深夜智商下降的痛苦0当然你是对的,这些变量名至少可以说是令人困惑的,但我真的很累,我的命名约定智商下降了。应该发布一个更清晰的例子,对此表示抱歉。当然,我不必一直设置适配器,我们的建议很有道理。@Joakim-我自己也曾在很多晚上经历过深夜智商下降的痛苦0