ListView につぶやきを入力する必要があるカスタム CursorAdapter を作成しました...単純な日付とつぶやきが表示されます...うまく機能します。唯一のことは、ログエントリを追加すると、BindView メソッドがすべてのアイテムに対して8秒ごとに継続的に呼び出されています...これは、画面の他の場所にあるViewFlipperのflipDurationに対応しています...(期間を変更し、BindViewが新しい間隔時間で呼び出されることを確認して確認してください)
ViewFlipper は、ViewList と同じレイアウト xml と同じデータを使用します (ただし、DB を 2 回呼び出してロードします)。
これは正常な動作ですか?
List と Flipper をレンダリングするメソッド:
public void loadTwitterFeed(){
ListView twitterList = (ListView) findViewById(R.id.twitterList);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
dbHelper dbh = new dbHelper(this);
dbh.openRead();
twitterDbAdapter adapt = new twitterDbAdapter(this, dbh.getTweets());
twitterList.setAdapter(adapt);
ViewFlipper flipper = (ViewFlipper) findViewById(R.id.twitterFlipper);
ArrayList<twitterTweet> tweets = dbh.getTweetsAsList();
for( twitterTweet obj : tweets){
View tItem = (View) inflater.inflate(R.layout.twitter_item, flipper, false);
TextView tv1 = (TextView) tItem.findViewById(R.id.textView1);
TextView tv2 = (TextView) tItem.findViewById(R.id.textView2);
tv1.setText(obj.getDate());
tv2.setText(obj.getText());
flipper.addView(tItem);
}
dbh.close();
flipper.setFlipInterval(5000);
flipper.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.slide_in_left));
flipper.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.slide_out_right));
flipper.startFlipping();
}
私のカスタムアダプター:
public class twitterDbAdapter extends CursorAdapter{
private LayoutInflater inflater;
public twitterDbAdapter(Context context, Cursor cursor){
super(context, cursor);
inflater = LayoutInflater.from(context);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
Log.i("extra","binding");
TextView textView = (TextView) view.findViewById(R.id.textView1);
TextView textView2 = (TextView) view.findViewById(R.id.textView2);
textView.setText(cursor.getString(cursor.getColumnIndex("createdat")));
textView2.setText(cursor.getString(cursor.getColumnIndex("tweet")));
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = inflater.inflate(R.layout.twitter_item, parent, false);
return view;
}
}