0

異なるレイアウト上の同じコンテンツの複数のListView

つまり、基本的に私が持っているのは、SQLiteDBからコンテンツを取得している2つのListViewです。同じデータにアクセスするために他のアクティビティを拡張するために、以下にBaseActivityを作成しました。私が遭遇した問題は、データを表示できないことです。これは、これらのListViewを含む2つの異なるレイアウトであり、1つはDialogに、もう1つはTabWidgetにあり、両方とも別々のアクティビティにあります。

だから基本的に....

  1. 異なるアクティビティ(1つはdialogBoxに、もう1つはTabWidgetにある)にある同じデータで2つのListViewを表示する方法を知る必要があります
  2. 私が現在得ているエラーは、SimpleCursorAdapterのレイアウトからのものであり、リストビューの1つのみであり、ビューが見つからないため、もう1つは追加されません。
  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();
    }
};
4

1 に答える 1

0

うわー、私はついにそれを理解しました。問題はカスタムダイアログにあります。電話する代わりに...

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

それはする必要があります....

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

これを行わないと、findViewByIdはnullを返すため、NullPointerExceptionが返されます。

于 2012-07-12T20:13:07.367 に答える