我正在尝试为光标中的每个项目显示一个新的吐司,我该怎么做?我搜索了SO,但找不到任何相关的,有用的答案。这是我的代码,但它不起作用:
while(mNotesCursor.moveToNext()){
Toast.makeText(getActivity(),
mNotesCursor.getString(mNotesCursor.getColumnIndex("title")),
Toast.LENGTH_LONG).show();
}
答案 0 :(得分:3)
在迭代光标时进行烘烤不是最好的主意。原因如下:
您正在使用LENGTH_LONG
,这意味着敬酒会持续约3秒钟。
而你的for循环可能会在几分之一秒内完成执行。所以吐司会按顺序显示,但是它们会过渡到如此缓慢以至于它可能没有意义。
因此,我建议您在警告对话框或活动本身中显示内容,以便用户能够更好地了解内容。
编辑:
我假设您正在主线程上执行此操作。
LinearLayout root = (LinearLayout) getActivity().findviewById(R.id.rootLayout);
while(mNotesCursor.moveToNext()){
TextView tv = new TextView(getActivity());
tv.setText(mNotesCursor.getString(mNotesCursor.getColumnIndex("title")));
root.addView(tv);
}
答案 1 :(得分:1)
如果您希望动态地将textview添加到视图中,那么您可以按照以下方式进行操作
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:id="@+id/lineralayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
在您的活动类
中LinearLayout l = (LinearLayout) findViewById(R.id.lineralayout1);
while(mNotesCursor.moveToNext()){
TextView tv = new TextView(this);
tv.setText(mNotesCursor.getString(mNotesCursor.getColumnIndex("title")));
l.addView(tv);
}