0

ビルダーを使用してダイアログにデータを注入する方法は?

R.layout.history (クラスの 3 行目にビューとして設定されている) でアダプターを使用したい。しかし、FireMissiles クラス内では実行できないようです。

そのビューでアダプターを使用して、データを取り込むにはどうすればよいですか?

public class FireMissilesDialogFragment extends DialogFragment {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

        // Get the layout inflater
        LayoutInflater inflater = getActivity().getLayoutInflater();
        builder.setView(inflater.inflate(R.layout.history, null));


        builder.setTitle("History");

        return builder.create();
    }
}
4

3 に答える 3

0

layout.history のタイプが ListView または AdapterView であることを願っています。これはあなたがそれを行う方法です:

ListView lview = (ListView)inflater.inflate(R.layout.history, null);

lview.setAdapter(アダプター); // アダプタを FireMissilesDialogFragment のコンストラクタとして渡します

于 2013-01-07T19:22:49.743 に答える
0

この行の代わりに:

builder.setView(inflater.inflate(R.layout.history, null));

ビューを同時に作成および設定すると、次のように分割されます。

View v = infalter.inflate(R.layout.history, null));
// ... Some code here that sets up the view with your data.
builder.setView(v);

v は、R.layout.history のルート レイアウトと同じタイプにする必要があります。v.findViewById()動的に作成/参照された ViewGroupと同じように、その子を取得できます。

于 2013-01-07T19:23:42.017 に答える
0

そのビューでアダプターを使用してデータを入力するにはどうすればよいですか?

AlertDialog.Builder クラスを使用して、setItems()またはを呼び出しsetMultipleChoiceItems()てデータの配列を渡し、Dialog に ListView を設定させることができます。

または、通常のように独自の ListView (または Spinner など) を作成し、このレイアウトを任意のダイアログのsetContentView()メソッドに渡すことができます。(必ずしも AlertDialog.Builder を使用する必要はありません。)

于 2013-01-07T19:06:20.757 に答える