【问题标题】:Multiple ListViews, with same content, on different layouts在不同布局上具有相同内容的多个 ListView
【发布时间】:2012-07-12 15:11:34
【问题描述】:

多个 ListView,内容相同,布局不同

所以基本上我拥有的是两个从 SQLite DB 获取内容的 ListView。我在下面创建了一个 BaseActivity 来扩展我的其他活动以访问相同的数据。我遇到的问题是我无法显示数据,因为它们是包含这些 ListView 的两种不同布局,一个在 Dialog 中,另一个在 TabWidget 中,它们都在单独的活动中。

所以基本上......

  1. 我需要知道如何在不同的活动中显示两个具有相同数据的 ListView(一个在对话框中,另一个在 TabWidget 中)
  2. 我目前遇到的错误来自 SimpleCursorAdapter 中的布局,仅针对其中一个 ListView,它不会添加另一个,因为它找不到视图
  3. 我不会在任何时候扩展 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();
    }
};

【问题讨论】:

    标签: android sqlite listview layout android-activity


    【解决方案1】:

    哇,我终于想通了。问题出在自定义对话框中。而不是调用...

    study_guide_dialog_list_view = (ListView) findViewById(R.id.list);
    

    应该是……

    study_guide_dialog_list_view = (ListView) dialog.findViewById(R.id.list);
    

    如果您不这样做,findViewById 将返回 null,因此会返回 NullPointerException

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      • 2015-10-05
      • 2014-01-22
      • 1970-01-01
      相关资源
      最近更新 更多