数组列表和自定义适配器

问题描述:

我已经创建了一个数组列表:数组列表和自定义适配器

public class TweetListActivity extends ListActivity { 

    private ListView tweetListView; 
    private ArrayAdapter tweetItemArrayAdapter; 
    private final List<Tweet> tweets = new ArrayList<Tweet>(); 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_tweet_list); 
     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); 
     } 
     tweetItemArrayAdapter = new TweetAdapter(this,tweets); 

     setListAdapter(tweetItemArrayAdapter); 
    } 
} 

而对于该列表中创建自定义适配器是:

public class TweetAdapter extends ArrayAdapter<Tweet> 

{ 

private List<Tweet> tweetslocal; 
    private LayoutInflater inflater; 

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

    @Override 
    public Tweet getItem(int arg0) { 
     return tweetslocal.get(arg0); 
    } 

    @Override 
    public long getItemId(int arg0) { 
     return arg0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View row = inflater.inflate(R.layout.row_tweet, parent, false); 
     TextView tweetTitle = (TextView) row.findViewById(R.id.tweetTitle); 
     TextView tweetBody = (TextView) row.findViewById(R.id.tweetBody); 
     Tweet tweet = tweetslocal.get(position); 
     tweetTitle.setText(tweet.getTitle()); 
     tweetBody.setText(tweet.getBody()); 
     return row; 
    } 
} 

但我无法得到所需的输出。所需的输出是一个推文列表,标题为“鸣叫1,2,3等等的好标题”。但是我得到的结果是“推文19,19,19等的好头”。任何人都可以提出我犯了什么错误?

+0

您的代码似乎没问题。在你的自定义适配器类中添加'getCount()'方法,它返回'tweetslocal.size();' – Piyush

+0

增加了getCount()方法,但没有结果。 –

解决

实施

的Bean;

in Tweet.java

试试这个

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View row = inflater.inflate(R.layout.row_tweet, parent, false); 
    TextView tweetTitle = (TextView) row.findViewById(R.id.tweetTitle); 
    TextView tweetBody = (TextView) row.findViewById(R.id.tweetBody); 
    tweetTitle.setText(tweetslocal.get(position).getTitle()); 
    tweetBody.setText(tweetslocal.get(position).getBody()); 
    return row; 
} 
+0

仍然给出相同的输出。没有工作。 –

+0

调试并检查每次迭代中的位置值 – Jas