编辑〜解决方案已找到并在我的回复中(现在的最后一个回复)但我不能将它标记为问题的答案,直到两天后。在此期间,我将在此处保留此编辑,直到我能够将其标记为正确。
调用对话框的位置:
public OnClickListener fieldListener = new OnClickListener() {
public void onClick(View v) {
FragmentManager fm = getSupportFragmentManager();
switch (v.getId()) {
case (0) :
ChooseDialog ageDialog = new ChooseDialog("Age", ageEditText, act);
ageDialog.show(fm, "fragment_edit_name");
对话:
public class ChooseDialog extends DialogFragment implements DialogInterface.OnClickListener, OnMultiChoiceClickListener {
public Dialog onCreateDialog(Bundle savedInstanceState) {
LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View dialogLayout = inflater.inflate(R.layout.dialog, null);
AlertDialog.Builder builder;
switch (editText.getId()) {
case (0) :
ListView list = (ListView) dialogLayout.findViewById(R.id.listView1);
list.setAdapter(new ArrayAdapter<String>(activity, R.layout.dialoglist,
activity.getResources().getStringArray(R.array.ageArray)));
list.setBackgroundColor(00000000);
builder = new AlertDialog.Builder(activity);
builder.setTitle(type);
builder.setNegativeButton("Cancel", this);
builder.setView(dialogLayout);
/* builder.setAdapter(new ArrayAdapter<String>(activity, R.layout.dialoglist,
activity.getResources().getStringArray(R.array.ageArray)),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
editText.setText(activity.getResources().getStringArray(R.array.ageArray)[which]);
}}
);*/
return builder.create();
Dialog.xml:
<?xml version="1.0" encoding="UTF-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listView1"
android:background="#00000000"
android:cacheColorHint="#00000000"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
DialogList.xml(只是适配器的textview):
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeight"
android:paddingLeft="6dip"
android:textColor="@color/androidBlue"
android:paddingRight="10dip"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceLarge" />
答案 0 :(得分:2)
尝试
list.setBackgroundColor(Color.TRANSPARENT);
修改强>
在浏览ICS的几个问题时,我遇到了this,在我看来,我发现这可能是ICS的一个问题。认为此问题不与问题相关,但它表明开发人员在设置背景时遇到问题。
随时欢迎更正。
答案 1 :(得分:2)
我的解决方案:更改AlertDialog.Builder构造函数以使用上下文,主题:
builder = (Integer.parseInt(android.os.Build.VERSION.SDK) < 11)? new AlertDialog.Builder(activity) :
new AlertDialog.Builder(activity, android.R.style.Theme_Translucent);
这确保它在Ginger上加载透明(通过XML中的行显示透明);和半透明的ICS。主要问题是对话框的正面和负面按钮与我的UI不匹配。我将在未来几天内在那里开发解决方案。
另一个问题是使用builder.setMultiChoiceItems(), null, this);
而不是列表。这使得它在整个对话框区域具有全白背景。我希望在这里发现一个主题方法,但除此之外,我的所有对话框看起来都像我现在想要的那样:P
答案 2 :(得分:1)
和XML:
android:background="@android:color/transparent"
android:cacheColorHint="@android:color/transparent"