1

リストを持つ AlertDialog を表示しようとしています。Android IC でアプリケーションを実行しても問題はありませんが、Android 2.3 で試してみると、ビューの上位部分と下位部分にあるという恐ろしい境界線で AlertDialog が表示されます。私はテーマや多くのことを試しましたが、AlertDialog.Builder(Context, Theme) が 11 未満の API では無効であるという問題が追加されました。解決策を知っていますか? ありがとう!

public boolean updialog (String table) {
    String [] data = bd.List(1, table);
    if(data[0]=="") {
        AlertDialog.Builder dialog = new AlertDialog.Builder(this,android.R.style.Theme_Translucent_NoTitleBar);
        View view = View.inflate(getApplicationContext(), R.layout.drop_no_resquest, null);
        dialog.setView(view); dialog.create();
        dialog.show(); 
        return true;
    }
    AlertDialog.Builder dialog = new AlertDialog.Builder(a);
    View view = View.inflate(getApplicationContext(), R.layout.drop, null);
    ListView lv = (ListView) view.findViewById(R.id.drop_listview);
    ArrayAdapter<String> adap = new ArrayAdapter<String> (getApplicationContext(), 
    R.layout.list_item_custom,R.id.list_item_custom_text,data);
    lv.setAdapter(adap);
    dialog.setView(view);
    dialog.create();
    dialog.show(); return true;
}
4

2 に答える 2

0

あなたはこのように使うことができます

AlertDialog.Builder dialog = new AlertDialog.Builder(this,R.style.ThemeDialogCustom);

どこThemeDialogCustomがこのようになりますか

 <style name="ThemeDialogCustom">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowBackground">@color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
</style>

android <3.0のDialog場合、クラス を使用する必要があります。

Dialog dialog = new Dialog(this, R.style.ThemeDialogCustom);
    View view = View.inflate(getApplicationContext(), R.layout.drop, null);
    ListView lv = (ListView) view.findViewById(R.id.drop_listview);
    ArrayAdapter<String> adap = new ArrayAdapter<String>(
            getApplicationContext(), R.layout.list_item_custom,
            R.id.list_item_custom_text, data);
    lv.setAdapter(adap);
    dialog.setView(view);

    dialog.show();
于 2012-12-02T12:52:21.937 に答える
0

また、dialog.getwindow () を使用し、ダイアログのウィンドウ プロパティにアクセスして、背景を取り除くこともできます。setbackground() を使用して、透明なドローアブルを設定できると思います。

于 2012-12-02T13:47:33.570 に答える