2015-09-29 2 views
0

Я создал список для пользовательского адаптера, написав следующий код:список частот <data> для пользовательского адаптера

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 = 1; i < 21; 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); 
} 
} 

код TweetAdapter как ниже

public class TweetAdapter extends ArrayAdapter<Tweet> 
{ 
    private List<Tweet> tweetslocal; 
    private Context context; 
    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); 
    Tweet tweet = tweetslocal.get(position); 
    tweetTitle.setText(tweet.getTitle()); 
    TextView tweetBody = (TextView) row.findViewById(R.id.tweetBody); 
    tweetBody.setText(tweet.getBody()); 
    return row; 
} 
} 

Но, я не получаю желаемого вывод. Список показывает все твиты с заголовком 20 вместо increamental твитов от tweet1 чирикать 20.

+1

где ваш 'TweetAdapter'? – Rustam

ответ

0

решена

реализован

импорта java.io.Serializable;

в Tweet.java

0

Получить твиты объект, как это, если массив с именем твитов в вашем TweetAdapter:

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

    Tweet tweet = tweets.get(position); 
    // TODO using tweet. 
} 

ли вы имеете в виду это?

1

Глядя на ваш код, я вижу, вы уже прошли список твитов на свой TweetAdapter.

В TweetAdapter, объявить список Tweet-х:

private List<Tweet> tweets; 

Затем убедитесь, что ваш конструктор выглядит следующим образом:

public TweetAdapter(Context ctx, List<Tweet> tweets) { 
     this.context = ctx; //Context == activity 
     this.tweets = tweets; 
    } 

Теперь в вашем getView(), вы можете сделать это:

final Tweet currentTweet = tweets.get(position); 

Надеюсь, это помогло!

+0

Я также добавил код активности tweetadapter. ты можешь помочь мне с этим сэром? –

+0

также после добавления конструктора он дает мне ошибку «В конструкторе android.widget.ArrayAdapter нет конструктора по умолчанию» –