java - TweetAdapter.java 上的 CodeLearn Twitter 教程空指针错误

标签 java android twitter

我目前正在学习 Codelearn Twitter 教程,但我在下面的代码中得到了一个空指针 - 有人可以帮助我吗?

public class TweetAdapter extends ArrayAdapter<Tweet> {

private LayoutInflater inflater;
private ArrayList<Tweet> tweetsList;

 public TweetAdapter(Activity activity, List<Tweet> tweets) {
     super(activity, R.layout.row_tweet, tweets);
     tweetsList = (ArrayList<Tweet>) tweets;
     inflater = activity.getWindow().getLayoutInflater();
}

@Override
 public View getView(int position, View convertView, ViewGroup parent){

    Tweet t = tweetsList.get(position);

    ***TextView title = (TextView) convertView.findViewById(R.id.tweetTitle);***
    TextView body = (TextView) convertView.findViewById(R.id.tweetBody);

    title.setText(t.getTitle());
    body.setText(t.getBody());

    return inflater.inflate(R.layout.row_tweet, parent, false);
    }

最佳答案

您的 convertView 可以为空。不能保证它将是非空的。如果没有旧 View 可以重用它将为空

改变

public View getView(int position, View convertView, ViewGroup parent)
{

Tweet t = tweetsList.get(position);

***TextView title = (TextView) convertView.findViewById(R.id.tweetTitle);***
TextView body = (TextView) convertView.findViewById(R.id.tweetBody);

title.setText(t.getTitle());
body.setText(t.getBody());

return inflater.inflate(R.layout.row_tweet, parent, false);
}

public View getView(int position, View convertView, ViewGroup parent)
{
  if(convertView==null)
    convertView = inflater.inflate(R.layout.row_tweet, parent, false);

  Tweet t = tweetsList.get(position);

  ***TextView title = (TextView) convertView.findViewById(R.id.tweetTitle);***
  TextView body = (TextView) convertView.findViewById(R.id.tweetBody);

  title.setText(t.getTitle());
  body.setText(t.getBody());

  return convertView;
}

您必须检查 convertView 是否为 non null,如果为 null,您需要在其中扩充布局。

您还应该看看 ViewHolder pattern

关于java - TweetAdapter.java 上的 CodeLearn Twitter 教程空指针错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25079699/

相关文章:

java - 部署 jar Tomcat 8

java - 单击可展开 ListView

android - 复选框上的可扩展 View 单击 Android

android - 更改 Place Autocomplete Fragment 的前景色和背景色

html - Net::Twitter::Lite 的特殊字符

python - 使用 Tweepy - Python 回复推文

java - 从模板生成 HTML 电子邮件

java - 从 p+q 和 pq 计算 p^n + q^n

android - 如何判断一个 View 在ListView中是否可见?

facebook - 在 Coldfusion 页面上聚合并显示 facebook 和 twitter 状态更新