在不同布局上具有相同内容的多个 ListView
所以基本上我所拥有的是两个从 SQLite DB 获取内容的 ListView。我在下面创建了一个 BaseActivity 来扩展我的其他活动以访问相同的数据。我遇到的问题是我无法显示数据,因为它们是包含这些 ListView 的两种不同布局,一个在 Dialog 中,另一个在 TabWidget 中,它们都在单独的活动中。
所以基本上......
- 我需要知道如何在不同的活动中显示两个具有相同数据的 ListView(一个在对话框中,另一个在 TabWidget 中)
- 我目前得到的错误是来自 SimpleCursorAdapter 中的布局仅适用于 ListViews 之一,它不会添加另一个,因为它找不到 View
- 我不会在任何时候扩展 ListActivity
非常感谢您提前。我将随时编辑或澄清。
我的基本活动的一部分
public class BaseActivity extends Activity
{
private SimpleCursorAdapter contactAdapter;
public static final String ROW_ID = "row_id";
private static ListView study_guide_list_view;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
String[] from = new String[] { "name" };
int[] to = new int[] { R.id.study_guide_item_in_listview };
contactAdapter = new SimpleCursorAdapter(BaseActivity.this, R.layout.study_guide_item_in_listview, null, from, to);
}
}
这个部分是我将 ListView 添加到 TabWidget 的地方,它目前正在工作
study_guide_list_view = (ListView) findViewById(R.id.list);
contactAdapter = getSimpleCursorAdapter();
study_guide_list_view.setAdapter( contactAdapter );
study_guide_list_view.setOnItemClickListener(listview_item_listener);
我试图在自定义对话框中添加 ListView(不起作用:错误出现在 study_guide_dialog_list_view.setAdapter(contactAdapter); 上)
public OnClickListener save_slide_page_to_guide_btn_listener = new OnClickListener()
{
@Override
public void onClick(View v)
{
TabbedPagesActivity.getListViewAdapter();
dialog = new Dialog(PDFViewerActivity.this);
dialog.setContentView(R.layout.study_guide_custom_dialog_box);
dialog.setTitle("Select a Study Guide");
dialog.setCancelable(true);
study_guide_dialog_list_view = (ListView) findViewById(R.id.list);
contactAdapter = getSimpleCursorAdapter2();
study_guide_dialog_list_view.setAdapter( contactAdapter );
study_guide_dialog_list_view.setOnItemClickListener(listview_item_listener);
Button dialog_ok_btn = (Button) dialog.findViewById(R.id.dialog_ok_btn);//it says cancel though
dialog_ok_btn.setTextSize(20);
dialog_ok_btn.setTypeface(Typeface.createFromAsset(getAssets(), "fonts/AGENCYR.TTF"));
dialog_ok_btn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
dialog.dismiss();
}
});
dialog.show();
}
};