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