警报对话框Android 2.3问题

时间:2012-11-14 11:57:50

标签: android alertdialog android-4.0-ice-cream-sandwich android-2.3-gingerbread

警报对话框出现问题我的代码是:

new AlertDialog.Builder(GestureShortcutsMainActivity.this)

.setTitle("Disclaimer")
.setIcon(R.drawable.alert_icon)
.setMessage(R.string.disclaimer)
.setPositiveButton("I Accept", 
new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {


                            }
                        })
.setCancelable(false)
.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){

public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
finish();
}
})
.show();

这就是它在android 4.0.4中的样子:

alert dialog 4.0.4

这是它在android 2.3.1中的样子:

alert dialog 2.3.1

如何在两个版本上正确显示?

2 个答案:

答案 0 :(得分:1)

您的主题在Android 2.3中不可用。 (例如:Android 2.3不包括Theme_Holo)

public void setThemeForAPIVersion()
{
    if((Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB))
    {
        setTheme(android.R.style.Theme_Holo);
    }
    else
    {
        setTheme(android.R.style.Theme_NoTitleBar);
    }
}

并在活动电话的onCreate中

        setThemeForAPIVersion(); 

答案 1 :(得分:0)

我建议您将邮件放在垂直滚动条中。 This question显示了一个示例。让XML代码看起来像这样(这是不完整的......)

<ScrollView android:id="scrollDialog">
    <LinearLayout android:orientation="vertical"
            android:scrollbars="vertical"
            android:scrollbarAlwaysDrawVerticalTrack="true">
        <TextView android:id="text" />
        <Button />
    </LinearLayout>
</ScrollView>

然后在代码中找到TextView,并设置AlertDialog以使用该布局

AlertDialog.Builder builder=new AlertDialog.Builder(this);
LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout;
layout = inflater.inflate(R.layout.scrollDialog,null);
TextView text=(TextView) findViewById(R.id.text);
text.setText(R.string.disclaimer);
setContentView(layout);