0

我正在尝试为光标中的每个项目显示一个新的 toast,我该怎么做?我已经搜索过,但找不到任何相关的有用答案。这是我的代码,但它不起作用:

 while(mNotesCursor.moveToNext()){ 
    Toast.makeText(getActivity(),  
    mNotesCursor.getString(mNotesCursor.getColumnIndex("title")),
            Toast.LENGTH_LONG).show();
    }
4

2 回答 2

3

在遍历光标时烤面包不是最好的主意。原因如下:

您正在使用LENGTH_LONG, 这意味着敬酒会持续大约 3 秒。而您的 for 循环可能会在几分之一秒内完成执行。所以 toast 会按顺序显示,但它们会过渡得很慢,以至于它可能没有意义。

因此,我建议您在警报对话框或活动本身中显示内容,以便用户能够从内容中获得更多意义。

编辑:

我假设您正在主线程上执行此操作。

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);
    }
于 2013-05-24T17:33:33.693 回答
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);
}
于 2013-05-24T17:53:45.617 回答